Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP在MySQL中嵌套JSON存储_Php_Mysql_Json - Fatal编程技术网

使用PHP在MySQL中嵌套JSON存储

使用PHP在MySQL中嵌套JSON存储,php,mysql,json,Php,Mysql,Json,我想在以下方面寻求您的帮助 我得到了类似于下面在PHP中提到的嵌套json。我想将数据存储在MySQL数据库中,但我面临变量信息的问题 我的问题是数据不一致。正如您在json中看到的: [6] => Array ( [pflds] => Array ( [1] => Array (

我想在以下方面寻求您的帮助

我得到了类似于下面在PHP中提到的嵌套json。我想将数据存储在MySQL数据库中,但我面临变量信息的问题

我的问题是数据不一致。正如您在json中看到的:

   [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和您尝试过的代码,这将更好。