我有以下兩個數組:PHP排序合併陣列由編號從1個數組,然後第2個數組,然後重複
陣列1
[0] => Array
(
[date] => 2014-02-01
[course_id] => 1
[id] => 24 [reg] => 1
)
[1] => Array
(
[date] => 2014-02-01
[course_id] => 2
[id] => 25
[reg] => 2
)
數組2
[0] => Array
(
[date] => 2014-02-01
[course_id] => 1
[id] => 24
)
[1] => Array
(
[date] => 2014-02-01
[course_id] => 1
[id] => 24
)
[2] => Array
(
[date] => 2014-02-01
[course_id] => 2
[id] => 25
)
[3] => Array
(
[date] => 2014-02-01
[course_id] => 2
[id] => 25
)
我已經合併這兩個數組使用array_merge和新的數組是array3
我有排序array3使用以下功能離子:
function cmp($a, $b) {
return strnatcasecmp($a[course_id], $b[course_id]);
}
usort($array3, "cmp");
但是我希望得到不顯示,因爲我想在下面,其中來自陣列1 COURSE_ID = 1總是在頂部,隨後從陣列中兩個匹配Course_ids列表的結果,然後從陣列1,隨後通過匹配Course_ids的列表從陣列2 COURSE_ID = 2:
[0] => Array
(
[date] => 2014-02-01
[course_id] => 1
[id] => 24
[reg] => 1
)
[1] => Array
(
[date] => 2014-02-01
[course_id] => 1
[id] => 24
)
[2] => Array
(
[date] => 2014-02-01
[course_id] => 1
[id] => 24
)
[3] => Array
(
[date] => 2014-02-01
[course_id] => 2
[id] => 25
[reg] => 2
)
[4] => Array
(
[date] => 2014-02-01
[course_id] => 2
[id] => 25
)
[5] => Array
(
[date] => 2014-02-01
[course_id] => 2
[id] => 25
)
,我已用於排序陣列3犯規所有的時間提供所需的結果的功能。請幫助你解決這個問題。
引自手冊(http://www.php.net/manual/en/function.usort.php):'如果第一個參數比較函數必須返回小於,等於或大於零的整數被認爲分別小於,等於或大於第二個。' – hindmost