需要帮助排序深层嵌套值的PHP数组
问题描述:
在此先感谢大家的帮助。需要帮助排序深层嵌套值的PHP数组
我有以下多维数组:
[list] => Array (
[0] => Array (
[retailer] => ABC Store
[locations] => Array (
[0] => Array (
[distance] => 2.86
)
[1] => Array (
[distance] = 5.50
)
)
)
[1] => Array (
[retailer] => XYZ Store
[locations] => Array (
[0] => Array (
[distance] => 1.25
)
[1] => Array (
[distance] = 7.50
)
)
)
)
我想基于位置阵列内的最近距离零售商进行排序。因此,新的Array
将在ABC Store
之前列出XYZ Store
。
我试过使用array_multisort
,但我遇到的问题是将主阵列与嵌套了几层的按键排序在一起。
答
$list = array(
array(
"retailer" => "ABC Store",
"locations" => array(
array(
"distance" => 2.86
) ,
array(
"distance" => 5.50
)
)
) ,
array(
"retailer" => "XYZ Store",
"locations" => array(
array(
"distance" => 1.25
) ,
array(
"distance" => 7.50
)
)
)
);
foreach($list as $info) {
$storeinfo[$info["retailer"]] = $info;
foreach($info["locations"] as $location) {
$distances[] = $location["distance"];
}
$stores[$info["retailer"]] = min($distances);
}
natsort($stores);
foreach($stores as $store => $distance) {
$newlist[] = $storeinfo[$store];
}
echo "<pre>";
print_r($newlist);
echo "</pre>";
@Rusty这是否适合您?或者你需要进一步的帮助? – Antony