【发布时间】:2026-02-17 01:25:02
【问题描述】:
我给了一个填充的数组,看起来像这样 -
$array = array(
0 => array(2,3,4),
1 => array(2,3,7,6,8),
-- and so on
);
在 PHP/PHP5.x 中是否有一种简写方式来完成基于主数组每个键的值中元素数量的此类数组的排序? 谢谢。
【问题讨论】:
我给了一个填充的数组,看起来像这样 -
$array = array(
0 => array(2,3,4),
1 => array(2,3,7,6,8),
-- and so on
);
在 PHP/PHP5.x 中是否有一种简写方式来完成基于主数组每个键的值中元素数量的此类数组的排序? 谢谢。
【问题讨论】:
使用usort()
function cmp($a, $b) {
if (count($a) == count($b)) {
return 0;
}
return (count($a) < count($b)) ? -1 : 1;
}
usort($array, "cmp");
这是该函数的一个更好的优化版本(只调用了两次count()):
function cmp($a, $b) {
$numA = count($a);
$numB = count($b)
if ($numA == $numB) {
return 0;
}
return ($numA < $numB) ? -1 : 1;
}
【讨论】: