【发布时间】:2010-09-28 07:24:20
【问题描述】:
我有一个 PHP 脚本,我在其中使用 usort() 函数重新排列多维数组。
这是数组 $arr 的示例数组(print_r-output)
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");
我希望能够根据不同的子键(即名称、等级、id)对数组进行排序,但它不像我上面那样工作。但是,如果我将排序电影函数中的 $val 更改为值 "grade" 它确实有效,所以由于某种原因它不允许我发送一个变量作为排序参数。
我做错了什么?
【问题讨论】: