我想要做的是按数字对多维数组排序,但将任何值等于0排列在数组的末尾。按数字值对零排序多维数组最后
此代码适用于使用0和单个数字进行排序,但在向其添加不同数字时似乎会中断。
的输出要求是: 41,42,43,44,45,46,0,0,0
<?php
$array = array(
array(
"position" => 41,
),
array(
"position" => 43,
),
array(
"position" => 42,
),
array(
"position" => 44,
),
array(
"position" => 45,
),
array(
"position" => 0,
),
array(
"position" => 0,
),
array(
"position" => 0,
),
array(
"position" => 46,
),
);
// Sort ascending
usort($array, 'sortByPosition');
// Show result
echo '<pre>';
print_r($array);
function sortByPosition($a, $b) {
return $a['position'] != 0 ? $a['position'] - $b['position'] : $b['position'] - $a['position'];
}
确定这是有道理的现在。感谢你的回答。看起来还有另一个可行的答案。 – stwhite
另一个更简单。不用担心,如果你宁愿接受它。 –
对于那些试图找出同样东西的人来说,我认为你的回答给出了我认为更重要的解释。 – stwhite