php中用array_multisort对多维数组排序
php中用array_multisort对多维数组排序
本人php比较菜 之前对二位数组排序 都是将二维转换成一维数组 进行操作
前几天偶然的机会在群里看到说php 有个内置的函数可以对多维数组排序
一直没有进行学习和验证 今天正好遇到这个问题 就查了下手册
在这里 记下
array_multisort — 对多个数组或多维数组进行排序
bool array_multisort ( array $ar1 [, mixed $arg [, mixed $... [, array $... ]]] )
排序顺序标志:
SORT_ASC - 按照上升顺序排序SORT_DESC - 按照下降顺序排序排序类型标志:
SORT_REGULAR - 将项目按照通常方法比较SORT_NUMERIC - 将项目按照数值比较SORT_STRING - 将项目按照字符串比较$info = Array
(
[0] => Array
(
[id] => 5
[catetype] => article
[parentid] => 1
[catename] => 公司新闻
)
[1] => Array
(
[id] => 1
[catetype] => article
[parentid] => 0
[catename] => 新闻中心
[2] => Array
(
[id] => 6
[catetype] => article
[parentid] => 1
[catename] => 行业新闻
)
操作:
foreach($info as $k => $v){
$recs[$k]['id'] = $v['id'];
$recs[$k]['parentid'] = $v['parentid'];
$recs[$k]['catename'] = $v['catename'];
$tmp[$k] = $v['parentid'];
}
array_multisort($tmp, $recs); print_r($recs);
out:
Array
(
[0] => Array
(
[id] => 1
[parentid] => 0
[catename] => 新闻中心
)
[1] => Array
(
[id] => 5
[parentid] => 1
[catename] => 公司新闻
)
[2] => Array
(
[id] => 6
[parentid] => 1
[catename] => 行业新闻
)
)