PHP编程实现多维数组按照某个键值排序的方法
阅读原文时间:2023年07月10日阅读:2

1.array_multisort()函数对多个数组或多维数组进行排序。

//对数组$hotcat按照count键值大小降序进行排序;

$hotcat =``array``(

array``(``'1501'``=>``array``(``'catid'``=>``'1546'``,``'catname'``=>``'数组排序 一级'``,``'count'``=>``'588'``)),

array``(``'1501'``=>``array``(``'catid'``=>``'1546'``,``'catname'``=>``'数组排序二级'``,``'count'``=>``'588'``)),

array``(``'1501'``=>``array``(``'catid'``=>``'1546'``,``'catname'``=>``'数组排序 三级'``,``'count'``=>``'588'``))

);

//提取列数组;

foreach (``$hotcat as $key => $val``) {

$tmp``[``$key``] = $row``[``'username'``];

}

array_multisort``(``$tmp``,SORT_DESC,``$hotcat``);此处对数组进行降序排列;SORT_DESC按降序排列

2.自定义方法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``;

}

转自:https://www.jb51.net/article/112285.htm(感谢分享)