php-将复杂的多维数据从API保存到数据库中

php-将复杂的多维数据从API保存到数据库中,php,mysql,arrays,Php,Mysql,Arrays,我正在使用牛津字典API在我的网站上开发字典功能。我已经成功地实现了这个函数,因为我可以搜索单词并从API中提取结果。但是,我在将这些数据保存到MySQL数据库时遇到了一个问题 这是我打印($dic\U数组)时得到的结果: 要在我的网站上反映结果,请执行以下操作: foreach($dic_array['results'][0]['lexicalEntries'] as $word) { echo '<hr><div class="partOfSpeech"&g

我正在使用牛津字典API在我的网站上开发字典功能。我已经成功地实现了这个函数,因为我可以搜索单词并从API中提取结果。但是,我在将这些数据保存到MySQL数据库时遇到了一个问题

这是我打印($dic\U数组)时得到的结果:

要在我的网站上反映结果,请执行以下操作:

foreach($dic_array['results'][0]['lexicalEntries'] as $word) {
        echo '<hr><div class="partOfSpeech"><p><b>'.$word['lexicalCategory'].'</b></p></div>';
            foreach($word['entries'][0]['senses'] as $definition) {
                echo '<p class="definition">'.$definition['definitions'][0].'</p>';

                if (!empty($definition['subsenses'])) {
                    foreach($definition['subsenses'] as $subsenses) {
                        echo '<p class="subDefinition" style="padding-left: 10px; "> -'.$subsenses['definitions'][0].'</p>'; 
                    }
                }
            }
    }    
foreach($dic_数组['results'][0]['lexicalEntries']作为$word){
回显“
”.$word['lexicalCategory']。

”; foreach($word['entries'][0]['senses']作为$definition){ echo'

.$definition['definitions'][0].

'; 如果(!empty($definition['subsenses'])){ foreach($subsenses定义为$subsenses){ echo'

-”.$subsenses['definitions'][0]。

'; } } } }
这不是答案。我是提出这个问题的作者。因为我不能写超过30000个字符,所以我在这里使用了一些额外的内容

这就是我所尝试的:

 foreach($dic_array['results'][0]['lexicalEntries'] as $word) {
            $lexicalCategory = serialize($word['lexicalCategory']);

            foreach($word['entries'][0]['senses'] as $definition) {
                $wordDefinition = serialize($definition['definitions'][0]);

                if (!empty($definition['subsenses'])) {
                    foreach($definition['subsenses'] as $subsenses) {
                        $wordSubdefinition = serialize($subsenses['definitions'][0]);

                        if(!empty($_POST['save'])) {
                            $sth = $this->db->prepare('INSERT INTO dictionary 
                                        (`word`, `partOfSpeech`, `definition`, `subDefinition`) 
                                        VALUES (:word, :partOfSpeech, :definition, :subDefinition)
                                        ');

                            $sth->execute(array(
                                ':word' => $data['word'],
                                ':partOfSpeech' => $lexicalCategory,
                                ':definition' => $wordDefinition,
                                ':subDefinition' => $wordSubdefinition
                            ));             
                        }

                    }
                }
            }

        }

我知道它太嵌套了,但一旦我完成了,我将把它分成几个函数。

您可以在数组上使用“json_encode”将其转换为字符串并保存在数据库中。当您检索它时,您可以使用“json_decode”。从API?什么样的API不是用来从自身获取数据的?我也没有看到
mysqli
PDO
。一般来说,最好将示例截断为有意义的字符量。而不是用您尝试过的源代码创建答案。
 foreach($dic_array['results'][0]['lexicalEntries'] as $word) {
            $lexicalCategory = serialize($word['lexicalCategory']);

            foreach($word['entries'][0]['senses'] as $definition) {
                $wordDefinition = serialize($definition['definitions'][0]);

                if (!empty($definition['subsenses'])) {
                    foreach($definition['subsenses'] as $subsenses) {
                        $wordSubdefinition = serialize($subsenses['definitions'][0]);

                        if(!empty($_POST['save'])) {
                            $sth = $this->db->prepare('INSERT INTO dictionary 
                                        (`word`, `partOfSpeech`, `definition`, `subDefinition`) 
                                        VALUES (:word, :partOfSpeech, :definition, :subDefinition)
                                        ');

                            $sth->execute(array(
                                ':word' => $data['word'],
                                ':partOfSpeech' => $lexicalCategory,
                                ':definition' => $wordDefinition,
                                ':subDefinition' => $wordSubdefinition
                            ));             
                        }

                    }
                }
            }

        }