使用PHP在MySQL中嵌套JSON存储
我想在以下方面寻求您的帮助 我得到了类似于下面在PHP中提到的嵌套json。我想将数据存储在MySQL数据库中,但我面临变量信息的问题 我的问题是数据不一致。正如您在json中看到的:使用PHP在MySQL中嵌套JSON存储,php,mysql,json,Php,Mysql,Json,我想在以下方面寻求您的帮助 我得到了类似于下面在PHP中提到的嵌套json。我想将数据存储在MySQL数据库中,但我面临变量信息的问题 我的问题是数据不一致。正如您在json中看到的: [6] => Array ( [pflds] => Array ( [1] => Array (
[6] => Array
(
[pflds] => Array
(
[1] => Array
(
[id] => 1
[n] => registration_plate
[v] => xxxxxx
)
[2] => Array
(
[id] => 2
[n] => vehicle_type
[v] => xxxxx
)
[3] => Array
(
[id] => 3
[n] => brand
[v] => xxxx
)
)
[pfldsmax] => 0
)
[7] => Array
(
[pflds] => Array
(
[1] => Array
(
[id] => 1
[n] => vehicle_type
[v] => Трактор
)
[2] => Array
(
[id] => 2
[n] => registration_plate
[v] => xxxxx
)
[3] => Array
(
[id] => 3
[n] => brand
[v] => John Deere
)
)
[pfldsmax] => 0
)
一旦登记牌
阵列->[6]->[1]->[n]登记牌
然后
阵列->[7]->[2]->[n]登记牌
因此,我不能轻易地说插入,因为列的位置不同。
字段[n]在任何时候都有相同的名称,[id]可以不同
我想不出任何使用条件。但我想重点关注字段[n],它将说明值将存储在哪个列中
有什么建议或其他方法吗
我是这个领域的新手。谢谢你的帮助 您可以多次使用foreach循环a,如:
foreach($ar as $ind1=>$set) { // ind1 = 6 or 7
foreach($set as $key=>$subar){ // key = 'pflds' or 'pfldsmax'
if (is_array($subar)){ // if subar is an array
foreach($subar as $item){
if ($item['n'] === 'registration_plate'){
// code for insert into DB
echo $item['id'].PHP_EOL;
}
}
}
}
}
可以多次使用foreach循环,避免在另一个循环中使用foreach循环,只需增加索引部分即可。您还可以对数据进行排序,如果您可以发布您想要的确切o/p和您尝试过的代码,这将更好。