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,你会看到从高到低的排序不是完美的,所以我需要按顺序对它进行排序,例如看产品“一个男孩棒球帽的乐趣”的价格