php中多维数组的排序
当我在“num”中添加相同的数字单位时。eg(0-9)。它正在对我的数组进行排序。但是,如果任何“num”值包含不同的数字单位,则排序失败。这就行了。(7,12,76,2)这将失败php中多维数组的排序,php,php-5.3,php-5.4,php-5.5,Php,Php 5.3,Php 5.4,Php 5.5,当我在“num”中添加相同的数字单位时。eg(0-9)。它正在对我的数组进行排序。但是,如果任何“num”值包含不同的数字单位,则排序失败。这就行了。(7,12,76,2)这将失败 $stack = array(array("Price" => $op,"num" => $noi), array("Price" => $op1,"num" => $noi1), array("Price" => $op2,"num" => $n
$stack = array(array("Price" => $op,"num" => $noi),
array("Price" => $op1,"num" => $noi1),
array("Price" => $op2,"num" => $noi2),
array("Price" => $op3,"num" => $noi3));
function cmp($a, $b)
{
return strcmp($a["num"], $b["num"]);
}
usort($stack, "cmp");
试试这个来比较数字
function cmp($a, $b) {
if ($a['num'] == $b['num']) {
return 0;
}
return ($a['num'] < $b['num']) ? -1 : 1;
}
函数cmp($a,$b){
如果($a['num']=$b['num']){
返回0;
}
回报($a['num']<$b['num'])?-1:1;
}
它直接取自上的PHP手册,并针对您的数组进行了修改。为什么在比较数字时使用strcmp?如果($a['num']==b['num'])返回0,为什么不直接复制
中的第一个示例;否则返回$a['num']<$b['num']-1 : 1;代码>