2014-01-13 113 views
1

我有一個多維數組,我試圖解析通過,它拋出奇怪的結果(或者我只是忽略了一些簡單的東西)。這是從一開始就json_decode樣本的print_r:解析通過PHP多維數組

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] => [email protected] 
          [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來從?

+0

'的foreach($ JSON作爲$鍵=> $值)'? – elclanrs

+0

在foreach語句中省略'$ key'沒有問題。我覺得2可能來自一些較早的代碼。您的foreach聲明之前您有什麼? – Scopey

+0

我意識到發生了什麼,並在下面提交了答案。 – Scopey

回答

2

的第一次您的循環,$value包含"2014-01-12T19:30:21.897"

當您試圖訪問$value['CorporateBuilderNumber']並且該密鑰不存在時,轉換爲$value[0],這是該字符串的第一個字符2

+0

這是正確的答案。我結束了使用XML,並完成了我需要完成的任務。謝謝! –

0

問題是您首先循環使用'DateGenerated'鍵。

所有你從

echo $value['CorporateBuilderNumber'] . "<br />"; 
echo $value['CorporateState'] . "<br />"; 
echo $value['CorporateName'] . "<br />"; 

被轉換成INT(0),並引用你有沒有日期的第一個字符,這是一個2

0

你可以用這個運行表:

foreach ($json as $key => $value) { 
    if (is_array($value)){ 
     foreach($value as $key2 => $value2){ 
      if(is_array($values2)) { 
       foreach($value2 as $key3 => $value3){ 
        echo $value3. "<br />"; 
       }  
      } 
      else{ 
       echo $value2. "<br />"; 
      } 
     } 
    } 
    else { 
     echo $value. "<br />"; 
    } 
} 
+0

好的,我明白你在那裏做了什麼。 –

+0

您可以繼續使用更多的foreach,因爲我看到您的prrint_r示例中有第四個數組 – Gokan