PHP 多维数组按照某个键值排序 -- array_multisort,自定义排序函数
2017-05-16 22:51:06
•
阅读
打赏
本文主要介绍了PHP 多维数组按照某个键值排序 -- array_multisort,自定义排序函数。分享给大家供大家参考,欢迎大家的学习。
对多维数组按照某个键值进行排序,有两种方法(array_multisort
和array_sort
)
第一种:
array_multisort()
函数对多个数组或多维数组进行排序。
//对数组按照nu键值大小降序进行排序;
$re = array(
array('a' => array('id' => '1546', 'type' => '一级', 'nu' => '2')),
array('a' => array('id' => '1546', 'type' => '二级', 'nu' => '1')),
array('1' => array('id' => '1546', 'type' => '三级', 'nu' => '2'))
);
//提取列数组
foreach ($re as $key => $val) {
$tmp[$key] = $val['nu'];
}
//对数组进行降序排列;SORT_DESC按降序排列
array_multisort($tmp, SORT_DESC, $re);
第二种:
自定义方法array_sort()
进行排序
//指定数组以$keys键值排序
function array_sort($array, $keys, $type = 'asc')
{
//$array为要排序的数组,$keys为要用来排序的键名,$type默认为升序排序
$keysvalue = $new_array = array();
foreach ($array as $k => $v) {
$keysvalue[$k] = $v[$keys];
}
if ($type == 'asc') {
asort($keysvalue);
} else {
arsort($keysvalue);
}
reset($keysvalue);
foreach ($keysvalue as $k => $v) {
$new_array[$k] = $array[$k];
}
return $new_array;
}
//此处对数组进行降序排列
$re = array_sort($re, 'nu', 'desc');
图一:
图二:
温馨提醒:由上图可知第一种方法有个问题,如果你的数组如果是字符串键名将被保留,但是数字键将被重新索引,从0开始,并以1递增。
所以当数组排序之后并且需要保留之前的所有键名的话,那就推荐使用第二种方法。
以上就是本文PHP 多维数组按照某个键值排序 -- array_multisort,自定义排序函数的全部内容,希望本文所述对大家PHP程序设计有所帮助。
相关推荐
深度学习 -- 损失函数
深度残差网络(Deep Residual Networks (ResNets))
深度学习 -- 激活函数
神经网络训练 -- 调整学习速率
生成对抗网络(GAN)改进与发展
生成对抗网络(GAN)优点与缺点
生成对抗网络(GAN)的训练
生成对抗网络(GAN)基本原理
生成模型与判别模型