2014-03-31 213 views
0

這是我的php數組$ data。php多維數組如何獲取值

Array 
    ( 
    [upcoming] => Array 
       ( 
       [webinars] => Array 
          ( 
          [0] => Array 
           ( 
           [webinarKey] => 123456 
           [subject] => webinar title ... 
           [times] => Array 
             (
             [0] => Array 
              (
              [startTime] => 2014-04-03T00:00:00Z 

請檢查以下代碼。我想獲取「webinarkey」和「主題」和「開始日期 - 格式化日期」的值,並將它們放入我的選擇框中。我現在可以填寫「webinarkey和」主題「。謝謝大家幫助填充」webinarkey和主題「,但現在我想顯示」開始日期以及日期格式。

echo '<form method="POST"><select>'; 
    foreach ($data["upcoming"]["webinars"] as $webinar) { 
    echo '<option value="' . htmlspecialchars($webinar["webinarKey"]) . '">' . htmlspecialchars($webinar["subject"]) . htmlspecialchars($webinar["times"]["startTime"]) . '</option>'; 

} 
    echo '</select></form>'; 

請幫助我顯示開始日期以及。

回答

1
$data = array(/**/); 
foreach ($data["upcoming"]["webinars"] as $webinar) { 
    echo '<option value="' . htmlspecialchars($webinar["webinarKey"]) . '">' . htmlspecialchars($webinar["subject"]) . '</option>'; 
} 

從我收集的唯一數組中您需要循環的是$data["upcoming"]["webinars"]

確保您的輸出HTML有效,並且您的數據正確轉義。

+0

感謝您的幫助 – akhan

0

由於您試圖訪問多維數組中的值,因此您不能使用->,因爲這是針對對象的屬性。相反,你需要訪問它像一個正常的數組:$array[key]

更新的代碼:

echo '<select>'; 
foreach ($webinars as $obj) 
{ 
    foreach ($obj['webinars'] as $ob) 
    { 

      echo '<option value='.$ob['webinarKey'].'>'.$ob['subject'].'</option>'; 

    } 
} 
echo '</select>'; 
+0

您有倒退。你可以使用' - >'來表示對象的屬性,但是'array!= object'。 –

+0

@JonathanKuhn謝謝,混淆了我的措辭。 –

+0

感謝Akshay的幫助 – akhan

0

您正在嘗試使用性能,它是一個數組不是對象。

您需要使用$ OB [ '----'],而不是轉播$>標記

echo '<select>'; 
foreach ($webinars as $obj) 
{ 
    foreach ($obj['webinars'] as $ob) 
    { 

      echo '<option value='.$ob['webinarKey'].'>'.$ob['subject'].'</option>'; 

    } 
} 
echo '</select>'; 
+0

感謝您的幫助 – akhan