2017-04-21 107 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>"; 

这也许不是为用户服务的演示,但如果它只是“自己查看”结果,这非常好。