我想要做的是按數字對多維數組排序,但將任何值等於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