以下输出是MySQL查询的结果。一些公司有多个位置和位置编号。而不是创建一个新的"公司"每次我希望该公司的所有位置都嵌套在第一个公司阵列下时。
因此,实质上公司阵列下会有另一个包含另一个位置/编号的对象。
我的大脑让我失望。有人在乎帮忙吗?
<?php
$json = '[
{
"Company 1": [
{
"location": "Location Name 1",
"number": "0001"
}
]
},
{
"Company 1": [
{
"location": "Location Name 2",
"number": "00045"
}
]
},
{
"Company 2": [
{
"location": "Location Name 1",
"number": "00021"
}
]
}
]';
$x = json_decode($json);
var_dump($x)
?>
答案 0 :(得分:2)
您可以通过迭代数组并将数据存储在新数组中来实现:
$x = json_decode($json, true);
$x2 = array();
foreach($x as $k => $v)
{
foreach($v as $k2 => $v2)
{
$x2[$k2][] = $v2[0];
}
}
print_r($x2);
结果将是:
Array
(
[Company 1] => Array
(
[0] => Array
(
[location] => Location Name 1
[number] => 0001
)
[1] => Array
(
[location] => Location Name 2
[number] => 00045
)
)
[Company 2] => Array
(
[0] => Array
(
[location] => Location Name 1
[number] => 00021
)
)
)
答案 1 :(得分:1)
您可以使用array_merge_recursive函数执行一行:
$arr = array_merge_recursive(...json_decode($json, True));