我有一个多维数组,我试图按照一个特定键的常用值对其进行排序,在我的情况下 name 。
我已经尝试使用foreach循环到数组中,或者使用usort,但我找不到这样做的方法。
注意“Diamètre”键的值如何在最终结果中合并为一个数组。
Array
(
[0] => Array
(
[0] => Array
(
[name] => Diamètre
[value] => 5
)
[1] => Array
(
[name] => Force
[value] => 30
)
)
[1] => Array
(
[0] => Array
(
[name] => Force
[value] => 20
)
[1] => Array
(
[name] => Poids
[value] => 50
)
)
[2] => Array
(
[0] => Array
(
[name] => Diamètre
[value] => 40
)
[1] => Array
(
[name] => Largeur
[value] => 40
)
)
)
预期结果:
Array
(
[0] => Array
(
[name] => Diamètre
[value] => Array (5, 40)
)
[1] => Array
(
[name] => Force
[value] => Array (30, 20)
)
[2] => Array
(
[name] => Poids
[value] => 50
)
[3] => Array
(
[name] => Largeur
[value] => 40
)
)
答案 0 :(得分:1)
您可以尝试以下方式:
$result = [];
foreach($array1 as $array2) {
foreach($array2 as $item) {
if(array_key_exists($item['name'], $result)) {
$newItem = $result[$item['name']];
$valueArray = (array) $item['value'];
$newValueArray = (array) $newItem['value'];
$newItem['value'] = array_merge($valueArray, $newValueArray);
} else {
$newItem = $item;
}
$result[$item['name']] = $newItem;
}
}
// In case you don't want an associative array.
$result = array_values($result);