[英]How to sort a two-dimensional array by length of inner arrays in PHP?
有人可以幫我嗎? 我試圖按內部數組的長度(降序)對二維數組進行排序。
該數組:
Array
(
[0] => Array
(
[0] => "a"
)
[1] => Array
(
[0] => "a"
[1] => "b"
[2] => "c"
)
[2] => Array
(
[0] => "a"
[1] => "b"
)
)
應導致此排序數組:
Array
(
[0] => Array
(
[0] => "a"
[1] => "b"
[2] => "c"
)
[1] => Array
(
[0] => "a"
[1] => "b"
)
[2] => Array
(
[0] => "a"
)
)
你有提示嗎?
// Comparison function
function cmp($a, $b) {
$ca = count($a);
$cb = count($b);
if($ca == $cb)
return 0;
return ($ca < $cb ) ? -1 : 1;
}
// Sort the array
uasort($array, 'cmp');
是的,使用usort
按元素的count()
進行排序。
<?php
header("Content-type: text/plain");
$array = array(
array(
"item1" => "key1",
"item2" => "key2",
),
array(
"item1" => "key1",
"item2" => "key2",
"item3" => "key3"
),
array(
"item1" => "key1",
)
);
usort($array, function($el1, $el2) {
if (count($el1) === count($el2)) {
return 0;
}
return count($el1) < count($el2) ? 1 : -1;
});
print_r($array);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.