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 数组排序

PHP多维数据排序(不区分大小字母)的更多相关文章

  1. PHP二维数据排序,二维数据模糊查询

    一.因为项目中的一个报表需要合并三个表的数据,所以分表查询再合并数据,利用PHP数组函数进行排序,搜索.三表合并后的数组结构如下: Array ( [0] => Array ( [history ...

  2. php 二维数据排序 排行榜

    php 二维数据排序 排行榜 $rateCount = array(); foreach($groupUsers as $user){ $rateCount[] = $user['rate']; } ...

  3. php对二维数据排序

    对于一维数组排序比较简单,像使用sort(),asort(),arsort()等函数进行排序,但是对于二维数组比较麻烦,所有借鉴网上的总结了一下 // 对二维数组进行指定key排序 $arr 二维数组 ...

  4. TensorflowTutorial_二维数据构造简单CNN

    使用二维数据构造简单卷积神经网络 觉得有用的话,欢迎一起讨论相互学习~Follow Me 图像和一些时序数据集都可以用二维数据的形式表现,我们此次使用随机分布的二位数据构造一个简单的CNN-网络卷积- ...

  5. SQL语句检索数据排序及过滤

    阅读目录 一:排序检索数据 二:过滤数据 三:高级数据过滤 四:用通配符进行过滤 回到顶部 一:排序检索数据 1.1 排序数据 比如查询数据库中表数据的时候,我们使用如下语句: select * fr ...

  6. for循环中进行联网请求数据、for循环中进行异步数据操作,数据排序错乱问题解决;

    for循环中进行联网请求数据,由于网络请求是异步的,第一个网络请求还没有回调,第二次第三次以及后续的网络请求又已经发出去了,有可能后续的网络请求会先回调:这时我们接收到的数据的排序就会错乱:怎么才能让 ...

  7. 微软BI 之SSAS 系列 - 多维数据集中度量值设计时的聚合函数 (累加性_半累加性和非累加性)

    在 SSAS 系列 - 实现第一个 Cube 以及角色扮演维度,度量值格式化和计算成员的创建 中主要是通过已存在的维度和事实数据创建了一个多维数据集,并同时解释了 Role-Playing Dimen ...

  8. Berkeley DB使用SecondKey给数据排序的实现方法

    Berkeley DB使用SecondKey给数据排序的 实现方法是本文我们主要要介绍的内容,在做项目的时候用到了nosql数据库BDB,借此机会研究了一下它的用法.它的官方示例和文档比较丰富,感觉比 ...

  9. 【笔记】求数据前n个主成分以及对高维数据映射为低维数据

    求数据前n个主成分并进行高维数据映射为低维数据的操作 求数据前n个主成分 先前的将多个样本映射到一个轴上以求使其降维的操作,其中的样本点本身是二维的样本点,将其映射到新的轴上以后,还不是一维的数据,对 ...

随机推荐

  1. [教学] Log.d 日志调试查看(所有平台)

    Firemonkey 提供了一个跨平台的日志显示函数 Log.d,当 App 越来越大 Debug 编译越来越慢时,可以利用它在 Release 模式来除错,下列说明如何在各平台查看. 小技巧:可以在 ...

  2. scvmm2008 错误 2941 0x80072efe

    该错误是由于vmm和主机之间的证书不匹配所导致的. 1. 运行mmc,文件=>添加管理单元=>添加证书=>计算机账户=>本地计算机. 2. 在下图各个目录证书下删除和vmm关联 ...

  3. 数独高阶技巧之八——SDC

    在本系列的第四篇“简单异数链”中,向大家介绍了XY-Wing等一系列Wing类技巧,并提到可以用(拐弯的)数组的观念来理解这些结构,经过第六篇ALS的学习之后,大家回过头再去看Wing,应该可以发现相 ...

  4. Slq怎么样获取首条记录和最后一条记录

    sql如何查询表的第一条记录和最后一条记录 方法一:使用top select TOP 1 * from apple;TOP 1 表示表apple中的第一条数据 select TOP 1 * from ...

  5. OCP新题库,052新加的考题及答案整理-24题

    24. YOUR DB_RECOVERY_FILE_DEST_SIZE Is 8G. Currently, 5G of the space Is used of which 4G consists o ...

  6. “全栈2019”Java第十九章:关系运算符、条件运算符和三元运算符

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  7. STR[#6]

    photo 小明在旅游的路上看到了一条美丽的河,河上有许多船只,有的船只向左航行,有的船只向右航行.小明希望拍下这一美丽的风景,并且把尽可能多的船只都完整地拍到一张照片中. 小明位于河的边上,并且可以 ...

  8. scrapy下载中间件,UA池和代理池

    一.下载中间件 框架图: 下载中间件(Downloader Middlewares) 位于scrapy引擎和下载器之间的一层组件. - 作用: (1)引擎将请求传递给下载器过程中, 下载中间件可以对请 ...

  9. ArchLinux 下 VirtualBox 增强设置

    0.前言: 其实这个标题本来不是我的本意,因为我的ArchLinux开机启动报错了!. 原本是一个服务报错,解决就行了对不对.后来我各种搜索大法发现了一个常识错误. 1.报错: 2.过程(赶时间的朋友 ...

  10. Python3之collections模块

    简介 collections是Python内建的一个集合模块,提供了许多有用的集合类. namedtuple namedtuple 是一个函数,它用来创建一个自定义的元组对象,并且规定了元组元素的个数 ...