Php 多维数组按价格升序和降序排序

Php 多维数组按价格升序和降序排序,php,arrays,sorting,multidimensional-array,Php,Arrays,Sorting,Multidimensional Array,这是我得到的以下阵列。。。!我该怎么分类呢 Array ( [0] => Array ( [0] => Array ( [price] => 29.99 [params] => [text] => demotext )

这是我得到的以下阵列。。。!我该怎么分类呢

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [price] => 29.99
                    [params] => 
                    [text] => demotext
                )

            [1] => Array
                (
                    [price] => 22.40
                    [params] => 
                    [text] => demotext
                )

            [2] => Array
                (
                    [price] => 12.95
                    [params] => 
                    [text] => demotext
                )

            [3] => Array
                (
                    [price] => 9.60
                    [params] => 
                    [text] => demotext
                )

        )

    [1] => Array
        (
            [0] => Array
                (
                    [price] => 8.16
                    [params] => 
                    [text] => demotext
                )

            [1] => Array
                (
                    [price] => 7.66
                    [params] => 
                    [text] => demotext
                )

            [2] => Array
                (
                    [price] => 7.19
                    [params] => 
                    [text] => demotext
                )

            [3] => Array
                (
                    [price] => 7.14
                    [params] => 
                    [text] => demotext
                )

        )
正如您在索引2中看到的,数组没有排序,因为5.10应该在索引[1]上,4.79应该在索引[2]上。

[2] => Array
        (
            [0] => Array
                (
                    [price] => 5.99
                    [params] => 
                    [text] => demotext
                )

            [1] => Array
                (
                    [price] => 4.79
                    [params] => 
                    [text] => demotext
                )

            [2] => Array
                (
                    [price] => 5.10
                    [params] => 
                    [text] => demotext
                )

            [3] => Array
                (
                    [price] => 4.20
                    [params] => 
                    [text] => demotext
                )

        )
    [3] => Array
        (
            [0] => Array
                (
                    [price] => 4.08
                    [params] => 
                    [text] => demotext
                )

            [1] => Array
                (
                    [price] => 4.00
                    [params] => 
                    [text] => demotext
                )

            [2] => Array
                (
                    [price] => 3.20
                    [params] => 
                    [text] => demotext
                )

            [3] => Array
                (
                    [price] => 3.19
                    [params] => 
                    [text] => demotext
                )

        )

    [4] => Array
        (
            [0] => Array
                (
                    [price] => 2.86
                    [params] => 
                    [text] => demotext
                )

            [1] => Array
                (
                    [price] => 3.58
                    [params] => 
                    [text] => demotext
                )

            [2] => Array
                (
                    [price] => 2.82
                    [params] => 
                    [text] => demotext
                )

            [3] => Array
                (
                    [price] => 2.90
                    [params] => 
                    [text] => demotext
                )

        )

)

尝试使用array\u multisort函数

我想您可以使用array\u multisort()来实现这一点

假设$arr是您的数组,然后尝试:

foreach($arr as &$ar){
  foreach($ar as $key=>$r){
    $price[$key] = $r['price'];
    $params[$key] = $r['params'];
    $text[$key] = $r['text'];
  }
 array_multisort($price, SORT_DESC, $params, SORT_REGULAR, $text,SORT_REGULAR,$ar);
}

请参见演示

这是我在大惊小怪后整理的内容,将多维数组分解为一个数组,然后根据价格对其进行排序

$array = your array;
// merging multi-dimension array into one array.
$result = array_merge_recursive($array[0],$array[1],$array[2],$array[3],$array[4]);
// now Sort array according to price
array_multisort($result, SORT_ASC);
foreach ($result as $key => $val) {
   foreach ($val as $new) { 
   }
echo  $new;
  }

到目前为止你尝试了什么?这里可能重复:你期望的结果是什么?如果你打开上面的URL,你会看到从高到低的排序不是完美的,所以我需要按顺序对它进行排序,例如看产品“一个男孩棒球帽的乐趣”的价格