php 多维数组排序
发布网友
发布时间:2022-04-06 00:41
我来回答
共1个回答
热心网友
时间:2022-04-06 02:10
$arr = array();
for ($i = 0; $i <= 5; $i++) {
$arr[$i]['Total'] = array("attribute" => array("AmountBeforTax" => rand()));
}
//以上是你的数组的简化版本
$key_arr = array();
//声明索引数组
foreach ($arr as $k => $v) {
$key_arr[$k] = $v['Total']['attribute']['AmountBeforTax'];
//将需要排序的数值加入到数组中
}
//现在$key_arr就是索引数组,是键值的关系表
array_multisort($arr, SORT_ASC, $key_arr);
//进行排序
echo "<pre>";
print_r($arr);
echo "</pre>";
有不明白的地方可以追问,满意请采纳 谢谢
追问谢谢,结果输出出来了,但是我想让他按照 刚刚的价格字段从小到大排序一下,排序结果好像不对呢?是不是我的数据类型是价格99.00这种的问题
追答
应该不是,我试过了 浮点数也是可以排序的,贴上你的代码,或者仔细检查一下,应该是没问题的
$arr = array();
$arr1 = array(
(float) 29.00,
(float) 1.00,
(float) 4.00,
(float) 5.00,
(float) 300.00,
(float) 40.00
);
for ($i = 0; $i <= 5; $i++) {
$arr[$i]['Total'] = array("attribute" => array("AmountBeforTax" => $arr1[$i]));
}
//以上是你的数组的简化版本
$key_arr = array();
//声明索引数组
foreach ($arr as $k => $v) {
$key_arr[$k] = $v['Total']['attribute']['AmountBeforTax'];
//将需要排序的数值加入到数组中
}
//现在$key_arr就是索引数组,是键值的关系表
array_multisort($arr, SORT_ASC, $key_arr);
//进行排序
echo "<pre>";
print_r($arr);
echo "<pre>";