我的數組有這樣的結構:我有一個多維數組,並需要通過「列」進行排序,但保持其他列組織
$news = array('id' => '', 'views' => '');
我需要最觀看訂購此,但它必須匹配id。我做了一些研究,但有很多疑問。
我的數組有這樣的結構:我有一個多維數組,並需要通過「列」進行排序,但保持其他列組織
$news = array('id' => '', 'views' => '');
我需要最觀看訂購此,但它必須匹配id。我做了一些研究,但有很多疑問。
我遇到了一些麻煩正好破譯你的意思是用什麼的問題,但這裏一對夫婦認爲,可能爲你工作。
如果你的陣列是由像
array(
array("id"=>1, "views"=>50),
array("id"=>3, "views"=>16)
);
然後你可以使用usort與閉合(PHP 5.3)
usort($news, function ($a, $b){ return $a["views"] - $b["views"]});
,如果你想在降序你可以交換$一個和$ b在封閉
usort($news, function ($a, $b){ return $b["views"] - $a["views"]});
如果你有一個由像
數組array(
"id"=>array(1,2),
"views"=>array(50, 16)
);
然後你可以使用array_multisort
array_multisort($news["views"], $news["id"]);
,或者如果你想讓它按降序排列
array_multisort($news["views"], SORT_DESC, SORT_NUMERIC, $news["id"]);
UPDATE
最終的解決方案。新聞是與對象一個views和id數組屬性。最終的解決方案是:
array_multisort($news->views, $news->id);
它返回相關聯的對象給出「。而我爲我迷惑的問題不好意思,那是因爲我不是以英語爲母語:/ –
我有第一種情況下,但它返回錯誤「usort()預計參數1是陣列: –
消息是不是一個數組,那麼......你也許可以用它轉換爲一個'(陣列)$新聞' – Orangepill
是通過索引相互關聯的id和views屬性數組嗎? usort()預計參數1是數組,對象給出 – Orangepill
是,他們是由索引 –