没有使用PHP获取数组所有值

时间:2014-07-16 16:16:17

标签: php arrays

我有以下数组

$question = array(
    "ques_15" => array(
        "name" => array(
            "0" => "aaa"
        )
    ),
    "ques_16" => array(
        "name" => array(
            "0" => "bbb",
            "1" => "ccc"
        )
    )
);
$i=0;
foreach($question as $k=>$v)
{
   echo $question[$k]['name'][$i];
    $i++;
}

但我的输出只是

aaaccc

我错过了价值bbb

4 个答案:

答案 0 :(得分:2)

你需要迭代内部'name'数组 - 你可以使用嵌套的foreach循环:

$question = array(
    "ques_15" => array(
        "name" => array(
            "0" => "aaa"
        )
    ),
    "ques_16" => array(
        "name" => array(
            "0" => "bbb",
            "1" => "ccc"
        )
    )
);
foreach($question as $quest)
{
   foreach($quest['name'] as $val)
   {
       echo $val;
   }
}

答案 1 :(得分:1)

你应该像这样循环

foreach($question as $q)
{
   foreach($q['name'] as $v)
   {
       echo $v;
   }
}

答案 2 :(得分:1)

在foreach中你不需要一个计数器$ i,它适用于while()或for()

你的数组是二维的,所以你需要2个foreach

答案 3 :(得分:1)

以功能方式检查。
简写数组声明仅适用于PHP 5.4+,但它仍适用于您的longhand数组声明。

$questions = [
    'ques_15' => ['name' => ['aaa']],
    'ques_16' => ['name' => ['bbb', 'ccc']]
];

array_map(function($a){
    foreach ($a['name'] as $v) echo $v;
}, $questions);