1. PHP中最普通的数组排序方法 sort();

看个例子:

 <?php
$test = array();
$test[] = 'ABCD';
$test[] = 'aaaa';
$test[] = 'Bdka';
$test[] = '1EEE';
$test[] = '3666';
$test[] = 'cddd'; sort($test);
foreach($test as $a)
echo $a.'<br>';
?>

运行结果:

  由结果可以看出,sort()排序是:先 数字 -> 大写字母 -> 小写字母的顺序排序的

2. 如果非得要不区分大小写来进行排序呢

使用PHP自动的 natcasesort()方法,nat -->native自然;case->大小写;sort->排序

所以从名字上就可以看出这个方法是可以 不区分大小写来进行排序的

 <?php
$test = array();
$test[] = 'ABCD';
$test[] = 'aaaa';
$test[] = 'Bdka';
$test[] = '1EEE';
$test[] = '3666';
$test[] = 'cddd'; // sort($test);
//自然排序,并不区分大小写
natcasesort($test);
foreach($test as $a)
echo $a.'<br>'; ?>

结果是:

  请看,这一次排序的结果是不区分大小写的,不过请注意这个方法对于多维数组一般是得不到想要的结果的

3. PHP的多维数组排序

tips:在PHP中多维数组的排序,一般是以每一个数据项的第一个元素来排序的

看例子:

 <?php
$person = array();
$test['name'] = 'Tommy';
$test['age'] = '1568';
$person[] = $test; $test['name'] = 'john';
$test['age'] = '18';
$person[] = $test; $test['name'] = '12Boy';
$test['age'] = '20';
$person[] = $test; $test['name'] = '3cat';
$test['age'] = '28';
$person[] = $test; $test['name'] = 'apple';
$test['age'] = '50';
$person[] = $test; $test['name'] = 'Banana';
$test['age'] = '25';
$person[] = $test; // sort($test);
//自然排序,并不区分大小写
natcasesort($person);
foreach($person as $a)
echo $a['name'].'--'.$a['age'].'<br>'; echo '<br><br>===========use sort()==========<br><br>';
sort($person);
foreach($person as $a)
echo $a['name'].'--'.$a['age'].'<br>'; ?>

结果是:

使用natcasesort()方法,得到的结果是很奇怪的,而且还有提醒,尽管这不是错误,但看着就是不爽;

而使用sort()方法,明显还是不能区分大小写,难道就真的没有办法可以实现这个需求吗,

不知道PHP内是否有这样的方法,或者高手是怎么解决的,我这里做了一个很笨的操作,看代码:

 <?php
$person = array();
$test['uppname'] = strtoupper('Tommy');
$test['name'] = 'Tommy';
$test['age'] = '1568';
$person[] = $test; $test['uppname'] = strtoupper('john');
$test['name'] = 'john';
$test['age'] = '18';
$person[] = $test; $test['uppname'] = strtoupper('12Boy');
$test['name'] = '12Boy';
$test['age'] = '20';
$person[] = $test; $test['uppname'] = strtoupper('3cat');
$test['name'] = '3cat';
$test['age'] = '28';
$person[] = $test; $test['uppname'] = strtoupper('apple');
$test['name'] = 'apple';
$test['age'] = '50';
$person[] = $test; $test['uppname'] = strtoupper('Banana');
$test['name'] = 'Banana';
$test['age'] = '25';
$person[] = $test; // sort($test);
//自然排序,并不区分大小写
natcasesort($person);
foreach($person as $a)
echo $a['name'].'--'.$a['age'].'<br>'; echo '<br><br>===========use sort()==========<br><br>';
sort($person);
foreach($person as $a)
echo $a['name'].'--'.$a['age'].'<br>'; ?>

思路:增加一个元素,值为需要排序元素的大写/小写 结果

更多信息可以参考:PHP 数组排序

最新文章

  1. BZOJ 1003 物流运输【最短路】【动态规划】
  2. C# 里的if/switch
  3. Java虚拟机学习记录
  4. js跳转页面方法整理
  5. [leetcode]_Maximum Depth of Binary Tree
  6. camera理论基础和工作原理
  7. HDU 4793 2013 Changsha Regional Collision[简单的平面几何]
  8. 如何为ASP.NET Core设置客户端IP白名单验证
  9. Mongodb 安装错误汇总
  10. java学习之—栈匹配字符串符号
  11. 哈尔滨工程大学ACM预热赛 G题 A hard problem(数位dp)
  12. java FindMyIP.java
  13. linux系统下键盘按键的重新映射——xmodmap工具和xev工具
  14. php加密
  15. 在 Visual Studio 2010 中配置SharpPcap
  16. Vue之单文件组件的数据传递,axios请求数据及路由router
  17. Bitbox : a small open, DIY 32 bit VGA console
  18. springmvc+jsp 拦截器下如何设置欢迎页面
  19. javascript之构造函数的继承(引用网络)
  20. 使用webstorm创建vue项目

热门文章

  1. 使用PLSQL Developer时中文乱码问题
  2. ansible 常用模块的使用
  3. C#面向对象二
  4. c++实验4 栈及栈的应用+回文+中、后缀表达式
  5. 【bzoj4889】: [Tjoi2017]不勤劳的图书管理员 分块-BIT
  6. [agc004f]Namori 贪心
  7. node.js的总结-可以应付bat的社招面试
  8. linux下发邮件
  9. Python2和Python3共存,pip共存
  10. python中package机制的两种实现方式