【发布时间】:2011-08-06 22:43:57
【问题描述】:
我真的很难解决应该很简单的问题。
我有这个
<?php
$json = json_decode('{
"33540116":
{"person":
{"name":"John", "age":"36"}},
"33541502":
{"person":
{"name":"Jack", "age":"23"}}
}
');
$id = array('33540116', '33541502');
foreach($id as $id) {
echo $json->$id->person->{'name'}. '<br />';
echo $json->$id->person->{'age'}. '<br />';
}
?>
所以代码是解码一个 json 字符串,然后使用 foreach 来回显每个结果。
这个 json 文件相当大,我只对与存储在 mysql 表中的 id 匹配的某些记录感兴趣。
为此,我将上面的 id 数组字符串替换为 mysql select 语句。
<?php
$json = json_decode('{
"33540116":
{"person":
{"name":"John", "age":"36"}},
"33541502":
{"person":
{"name":"Jack", "age":"23"}}
}
');
$result = mysql_query("SELECT id FROM people");
$row = mysql_fetch_array($result);
$id = array($row['id']);
foreach($id as $id) {
echo $json->$id->person->{'name'}. '<br />';
echo $json->$id->person->{'age'}. '<br />';
}
?>
虽然这可行,但它只给了我 1 个结果。 我真正需要的是遍历结果。 不幸的是,我不知道如何与 foreach 一起构造一个 while 循环。
非常感谢您的帮助。
更新(附加问题)
谢谢大家。你帮我解决了问题。
但是,我还有一个与此相关的问题。
我在上面提到我只是想回应结果。 但这并不完全正确。 我真正想做的是用从 json 文件中检索到的结果更新同一个 mysql 表。
我有一个名为 people 的表,其中包含 id、name 和 age 字段。
如何使用这些结果更新此表?
再次感谢。
【问题讨论】: