使用 array_multisort()函数对多个数组或多维数组进行排序的函数,正在研究数组排序、多维数组排序的朋友可以看看。
函数 bool array_multisort ( array &$arr [, mixed $arg = SORT_ASC [, mixed $arg = SORT_REGULAR [, mixed $...]]] )
参数说明: 函数对多个数组或多维数组进行排序
第一个参数是数组,随后的每一个参数可能是数组,也可能是下面的排序顺序标志
SORT_ASC - 默认,按升序排列
SORT_DESC - 按降序排列
随后可以指定排序的类型
SORT_REGULAR - 默认。将每一项按常规顺序排列。
SORT_NUMERIC - 将每一项按数字顺序排列。
SORT_STRING - 将每一项按字母顺序排列。
例:
商易建站系统(Sunnyi Website System)是一款基于THINKPHP开发制作的多语言CMS建站系统,其适用范围广,扩展性强,方便二次开发.商易建站系统使用了PHP缓存技术,可减少数据库访问,降低数据库压力,加速系统访问速度,提升系统性能.程序添加多种支付接口(财付通,支付宝等),并可自定配送方式. 功能介绍:1.数据库备份还原2.产品管理3.会员管理4.广告管理5.系统设置6.文章
0
结果为:
$arr1
Array ( [0] => 10 [1] => a [2] => 11 [3] => 100 [4] => 100 )
# '10'在与11, 100, 100比较时转换为整数10,小于其他三个数
# '10'在于'a'比较时作为字符串,其第一个字符'1'ascii码值为49小于‘a'(ascii值为97),所以‘10'为最小元素
# 'a'在于其他三个数字比较时,转换为整数0,小于其他三个数
$arr2
Array ( [0] => 1 [1] => 5 [2] => 2 [3] => 2 [4] => 3 )
# $arr2元素1与$arr1元素'10'位置对应,所以排在[0]位置
# $arr1[2] => 100, $arr1[3] => 100分别对应$arr2元素3, '2'。3大于'2',所以与2对应的$arr1[2] => 100排序后的下标为3,与3对应的$arr1[3] => 100排序的下标为4
总结----------
1.参与排序的数组元素数保持一致
2.排序数组元素位置对应如, ‘10' => 1 , 11 => 2
3.后边的数组在前边数组的顺序的基础上进行排序
4.前边的数组如遇相等的元素则比较后边的数组
'; <br>//原始数组格式 <br>$array = array( <br>'key1' => array( <br>'item1' => '65', <br>'item2' => '35', <br>'item3' => '84', <br>), <br>'key2' => array( <br>'item1' => '24', <br>), <br>'key3' => array( <br>'item1' => '38', <br>'item3' => '45', <br>), <br>); <br>//要排序的键 <br>//按照数组中的 item1进行排序 <br>//你也可以换成item2 <br>$sort = 'item1'; <br>foreach($array as $k => $v) <br>{ <br>$newArr[$k] = $v[$sort]; <br>} <br>//这个函数如果执行正确他会直接改变原数组键值的顺序 <br>//如果执行失败,那么他会返回 bool(false) <br>array_multisort($newArr,SORT_DESC, $array); <br>var_dump($array); <br>//---------------------排序后的数组打印效果 开始-------------------- <br>array(3) { <br>["key1"]=> <br>array(3) { <br>["item1"]=> <br>string(2) "65" <br>["item2"]=> <br>string(2) "35" <br>["item3"]=> <br>string(2) "84" <br>} <br>["key3"]=> <br>array(2) { <br>["item1"]=> <br>string(2) "38" <br>["item3"]=> <br>string(2) "45" <br>} <br>["key2"]=> <br>array(1) { <br>["item1"]=> <br>string(2) "24" <br>} <br>} <br>//---------------------排序后的数组打印效果 结束--------------------- <br>
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号