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] => 行业新闻

)

)