gla*_*kou 5 php arrays multidimensional-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
)
)
Run Code Online (Sandbox Code Playgroud)
我想先按类型按另一个数组排序:
例如: $sort = array('football','basket');
然后逐年.
我怎样才能做到这一点?
谢谢.
期望的输出应该是:
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
)
)
Run Code Online (Sandbox Code Playgroud)
我不介意我们重置索引值.
谢谢.
使用array_multisort
。假设你的数组是$arr
:
foreach($arr as $key=>$row) {
$type[$key] = $row['type'];
$year[$key] = $row['year'];
}
array_multisort($type, SORT_ASC, $year, SORT_ASC, $arr);
Run Code Online (Sandbox Code Playgroud)
要使用指定类型顺序的附加数组,您可以这样做:
$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);
Run Code Online (Sandbox Code Playgroud)
示例链接: