【发布时间】:2017-03-14 21:31:55
【问题描述】:
我有一个需要向其添加值的多维 JSON 数组。 JSON 数组是外部的,我无法更改其格式。
我尝试了 3 个foreach 循环,但后来我迷失了如何将数据添加到数组中。我一直发现自己陷入了一个循环。
这是 JSON:
{
"positions": [{
"report_at": "2017-03-13 20:04:10",
"elev": "0",
"dir": "0",
"id": "1"
}, {
"report_at": "2017-03-07 00:28:14",
"elev": "1240",
"dir": "89",
"id": "2"
}]
}
我有需要添加到 id 1 的唯一数据,以及需要添加到 id 2 的另一组唯一数据。
这是我尝试过的:
$data = json_decode( $result, true );
foreach ( $data as $d ) {
foreach ( $d as $key => $data ) {
if ( $data['id'] == '1' ) {
$data[] = array(
"online_status" => "1",
"name" => "Test User",
);
} elseif ( $data['id'] == '2' ) {
$data[] = array(
"online_status" => "0",
"name" => "Another User",
);
}
}
}
$json = json_encode( $data );
echo $json;
我认为,一旦我弄清楚了这一点,我就可以从 MySQL 中提取数据,根据该数据构建小数组,然后将它们添加到 ID 与 SQL ID 匹配的这些子数组中。任何帮助表示赞赏。
【问题讨论】:
-
你试过用 $data = array_merge( $data, array(....) ) 代替 $data[] 赋值吗?
标签: php arrays json multidimensional-array