Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中多维数组的排序_Php_Php 5.3_Php 5.4_Php 5.5 - Fatal编程技术网

php中多维数组的排序

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

当我在“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" => $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;