我有以下数组
$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
答案 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);