php-将复杂的多维数据从API保存到数据库中
我正在使用牛津字典API在我的网站上开发字典功能。我已经成功地实现了这个函数,因为我可以搜索单词并从API中提取结果。但是,我在将这些数据保存到MySQL数据库时遇到了一个问题 这是我打印($dic\U数组)时得到的结果: 要在我的网站上反映结果,请执行以下操作: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
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
));
}
}
}
}
}