Php 将自动生成的多维数组插入数据库

Php 将自动生成的多维数组插入数据库,php,mysql,multidimensional-array,Php,Mysql,Multidimensional Array,我需要为多维数组创建一个db函数。目前不知道数组的深度,因为它们将来自xml文件。 我有一个样本数组 Array ( [employee] => Array ( [0] => Array ( [name] => Array ( [lastname] =>

我需要为多维数组创建一个db函数。目前不知道数组的深度,因为它们将来自xml文件。 我有一个样本数组

Array
(
    [employee] => Array
        (
            [0] => Array
                (
                    [name] => Array
                        (
                            [lastname] => Kelly
                            [firstname] => Grace
                        )

                    [hiredate] => October 15, 2005
                    [projects] => Array
                        (
                            [project] => Array
                                (
                                    [0] => Array
                                        (
                                            [product] => Printer
                                            [id] => 111
                                            [price] => $111.00
                                        )

                                    [1] => Array
                                        (
                                            [product] => Laptop
                                            [id] => 222
                                            [price] => $989.00
                                        )

                                )

                        )

                )

            [1] => Array
                (
                    [name] => Array
                        (
                            [lastname] => Grant
                            [firstname] => Cary
                        )

                    [hiredate] => October 20, 2005
                    [projects] => Array
                        (
                            [project] => Array
                                (
                                    [0] => Array
                                        (
                                            [product] => Desktop
                                            [id] => 333
                                            [price] => $2995.00
                                        )

                                    [1] => Array
                                        (
                                            [product] => Scanner
                                            [id] => 444
                                            [price] => $200.00
                                        )

                                )

                        )

                )

            [2] => Array
                (
                    [name] => Array
                        (
                            [lastname] => Gable
                            [firstname] => Clark
                        )

                    [hiredate] => October 25, 2005
                    [projects] => Array
                        (
                            [project] => Array
                                (
                                    [0] => Array
                                        (
                                            [product] => Keyboard
                                            [id] => 555
                                            [price] => $129.00
                                        )

                                    [1] => Array
                                        (
                                            [product] => Mouse
                                            [id] => 666
                                            [price] => $25.00
                                        )
                               )
                        )
                  )
        )
)
我需要将这些类型的数组输入到db中,然后以非程序员可读的格式检索它们

我创建了2个表。。。第一个用于具有数组级别字段的数组键,另一个用于键=值

我试过这个

 function array_Dump($array, $d=1){
    if (is_array($array)){
        foreach($array as $key=>$val){
            for ($i=0;$i<$d;$i++){
                $level=$i;
            }
            if (is_array($val)){
               if (is_int($key)){

                array_Dump($val, $d+1);
                }else{
                $query = "insert into xml_array (level, input) VALUES ('$level','$key')";
              insert_sql($query);
                array_Dump($val, $d+1);
               }
            } else {
                $query = "insert into xml_data (array_id,level_id, array_key,array_value) VALUES ('$insert_id','$level','$key','$val')";
                insert_sql($query);
            }
        }
    }
}
函数数组\u转储($array,$d=1){
if(is_数组($array)){
foreach($key=>$val的数组){

对于($i=0;$i创建如下表:

属性(id、父id、属性)

其中,
id
将是
主键
parent\u id
将是父记录的
id
properties
将是一个带有原子属性的小json字段。这样,您就可以支持XML向您的方向延伸的任何深度


例如,你可以使用
(你也可以用
div
s解决这个问题)它将为顶级数组中的每个元素包含一行。这样的行将为每个属性包含单独的列。当属性是数组时,给定的单元格将是其自己的表,处理方式与第一个
表类似。建议将内部
设为可折叠的,因此如果有一个nts要仅查看主要级别,用户不必长时间滚动。

在db中创建数据类型为
JSON
的列,然后将
JSON\u encode($array)
的结果插入db中,当您想以非程序员可读的格式读取时,将其转换回数组
JSON\u decode($row['JSON\u column'])
并像使用原始arrayOk一样打印,但无法以良好的可读格式显示……我正在尝试使用table/div……但没有succeed@PawanKumar你试着做了什么?它怎么不起作用?