我有一個PHP腳本,我使用usort()函數重新排列了一個多維數組。關於PHP usort函數的問題
這是一個樣本陣列陣列$ ARR的(print_r的輸出)
Array
(
[3] => Array
(
[name] => Bjudningen
[grade] => 5
[grade_type] => calculated
[orgname] => LInvitation
[id] => 13975
)
[0] => Array
(
[name] => Coeur fidèle
[grade] => 3
[grade_type] => calculated
[orgname] => Coeur fidèle
[id] => 8075
)
[2] => Array
(
[name] => Dawsonpatrullen
[grade] => 5
[grade_type] => calculated
[orgname] => The Dawson Patrol
[id] => 13083
)
)
這是我的PHP腳本
function sort_movies($arr,$val){
function cmp($x, $y)
{
if ($x[$val] == $y[$val])
return 0;
else if ($x[$val] < $y[$val])
return -1;
else
return 1;
}
usort($arr, 'cmp');
return $arr;
}
$sorted = sort_movies($arr,"grade");
我希望能夠在不同的子項的數組進行排序(即姓名,年級,身份證),但它不起作用的方式,我在上面。但是,如果我將$val
在排序電影功能中更改爲值"grade"
它確實有效,所以出於某種原因,它不會允許我發送排序參數作爲可變值。
它是什麼我做錯了?
我的服務器只有5.2不幸 – Volmar 2010-09-28 08:21:39