$sortPattern= array(1,2,8,4);
$toSort = array(2,4,8,18,16,26);
現在,我們必須根據$sortPattern
排序$toSort
陣列。陣列使用陣列排序
我們應該有結果
$result = array(2,8,4,18,16,26);
有誰知道函數要做到這一點,或者我們應該有我們自己寫的函數來執行呢?
$sortPattern= array(1,2,8,4);
$toSort = array(2,4,8,18,16,26);
現在,我們必須根據$sortPattern
排序$toSort
陣列。陣列使用陣列排序
我們應該有結果
$result = array(2,8,4,18,16,26);
有誰知道函數要做到這一點,或者我們應該有我們自己寫的函數來執行呢?
是的,你必須編寫自己的排序功能,並將其與usort()
一起使用。在你的回調,你會做這樣的事情:
if ($a == $b) {
return 0;
} elseif (array_search($a, $sortPattern) < array_search($b, $sortPattern) {
return -1;
} else {
return 1;
}
不要處理a和/或b不在排序模式中的情況。 –
不$sortPattern
對$toSort
什麼樣的影響?
看起來可能:
$result = array_merge(
array_intersect($sortPattern, $toSort), // 2, 8, 4
array_diff($toSort, $sortPattern) // 18, 16, 26
);
嗯......我看不到的格局如何與最終的排序順序?但是你可以用'usort()'按你想要的順序排序。 – Spudley
請稍微指定您的排序模式的語法,但不清楚它應該表達什麼。 – hakre