多个排序以阵列 [英] Multiple sorts in an array
本文介绍了多个排序以阵列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下数组:
Array
(
[0] => Array
(
[note] => test
[year] => 2011
[type] => football
)
[1] => Array
(
[note] => test1
[year] => 2010
[type] => basket
)
[2] => Array
(
[note] => test2
[year] => 2012
[type] => football
)
[3] => Array
(
[note] => test3
[year] => 2009
[type] => basket
)
[4] => Array
(
[note] => test4
[year] => 2010
[type] => football
)
)
和我想首先根据按类型另一个数组排序是:
And I would like to first sort it according another array by type:
例如: $排序=阵列('足球','篮子');
和事后的一年。
我怎么能这样做?
感谢。
所需的输出应该是:
Array
(
[2] => Array
(
[note] => test2
[year] => 2012
[type] => football
)
[0] => Array
(
[note] => test
[year] => 2011
[type] => football
)
[4] => Array
(
[note] => test4
[year] => 2010
[type] => football
)
[1] => Array
(
[note] => test1
[year] => 2010
[type] => basket
)
[3] => Array
(
[note] => test3
[year] => 2009
[type] => basket
)
)
如果我们重置索引值,我不介意。
I do not mind if we reset the index values.
感谢。
推荐答案
使用 在array_multisort
。假设你的数组是 $改编
:
foreach($arr as $key=>$row) {
$type[$key] = $row['type'];
$year[$key] = $row['year'];
}
array_multisort($type, SORT_ASC, $year, SORT_ASC, $arr);
要使用addictional指定数组类型顺序,你可以这样做:
To use an addictional array specifying type order, you could do:
$sortBy = array('football','basket');
foreach($arr as $key=>$row) {
$type[$key] = array_search($row['type'],$sortBy);
$year[$key] = $row['year'];
}
array_multisort($type, SORT_ASC, $year, SORT_ASC, $arr);
例如链接:
这篇关于多个排序以阵列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文