【发布时间】:2014-01-13 23:04:33
【问题描述】:
我有一个多维数组,我试图解析它,但它会返回奇怪的结果(或者我只是忽略了一些简单的东西)。这是从开头开始的 json_decode 的示例 print_r:
Array
(
[DateGenerated] => 2014-01-12T19:30:21.897
[Corporation] => Array
(
[CorporateBuilderNumber] => MHI
[CorporateState] => TX
[CorporateName] => McGuyer Homebuilders, Inc.
[Builder] => Array
(
[0] => Array
(
[BuilderNumber] => COV
[BrandName] => Coventry Homes
[ReportingName] => Coventry Homes
[DefaultLeadsEmail] => appsupport@mhinc.com
[BuilderWebsite] => http://www.coventryhomes.com
[Subdivision] => Array
使用此代码时:
<?php
mysql_connect("localhost", "", "");
mysql_select_db("");
$json_data = file_get_contents('mhi.json');
$json = json_decode($json_data, true);
foreach ($json as $value) {
echo $value['CorporateBuilderNumber'] . "<br />";
echo $value['CorporateState'] . "<br />";
echo $value['CorporateName'] . "<br />";
}
?>
我得到这个作为输出:
2
2
2
MHI
TX
McGuyer Homebuilders, Inc.
那 2 是从哪里来的?
【问题讨论】:
-
foreach ($json as $key=>$value)? -
在 foreach 语句中省略
$key没有问题。我觉得 2 可能来自一些早期的代码。你在你的 foreach 语句之前有什么? -
我意识到发生了什么并在下面提交了答案。
-
@Scopey:对,我看错了。
-
您的代码没有尝试将其作为多维数组处理。我认为您需要查看
$value['Corporation']['CorporateBuilderNumber']、$value['Corporation']['CorporateState']、$value['Corporation']['Builder'][0]['BuilderNumber']等等。
标签: php json multidimensional-array