2017-04-21 122 views
-1

我有一個包含關聯數組的多維數組,並且在關聯數組中,我有一個名爲'opt'的鍵包含一個數組。我遍歷了整個多維數組。我想讓它更簡化,擺脫檢查密鑰是否'選擇',因爲如果我有更多的密鑰包含數組,那麼我必須申請檢查所有包含數組的密鑰。我不想要做到這一點,並想以更技術性的方式做。總之如何檢查while循環數組中$ value是否包含數組。PHP:使用嵌套數組打印關聯數組

$myArr=array(
    array(
     'question' => 'First Question', 
     'opt' => array('A','B','c','D'), 
     'ans' => '3' 
    ), 
    array(
     'question' => 'Second Question', 
     'opt' => array('A','B','c','D'), 
     'ans' => '1' 
    ) 
); 
for($i=0; $i<count($myArr); $i++) 
{ 
    foreach ($myArr[$i] as $key => $value) { 
     if ($key!='opt') { 
      echo $value . "<br/>"; 
     } 
     else{ 
      for($ii=0; $ii<count($value); $ii++) 
      { 
       echo $value[$ii] . "<br />"; 
      } 
     } 
    } 
} 
+1

您的預期產出是多少? –

+0

我只是想讓它更簡化。我把它放入JSON文件(成功完成)。 –

+0

在你的問題中增加你期望的輸出,所以我們可以得到更多的想法。 –

回答

0

你可以使用一個遞歸函數,並顯示使用foreach東西,就像這樣:

function display_array($arr){ 
    if(gettype($arr) == 'array'){ 
     foreach($arr as $v){ 
      display_array($v); 
     } 
    }else{ 
     echo $arr . '<br>'; 
    } 
} 

這樣稱呼它:

display_array($myArr); 

輸出是一樣的與您的代碼。檢查出來here

0

根據您所需的輸出...的「印刷」最簡單的方法在此數組中一個很好的格式化的方式是:

echo "<pre>"; 
print_r($arr); 
echo "</pre>"; 

這也許不是爲用戶服務的演示,但如果它只是「自己查看」結果,這非常好。