我有一个数组如下面的数据
$array = array(
'someKey' => array(
'id' => 1,
'string' => 'some key',
'someKey2' => array(
'id' => 1,
'string' => 'some key two',
'someKeyThree' => array(
'id' => 1,
'string' => 'some key three',
,
),
),
'someOtherKey' => array(
),
);
我想做的是将每个数组作为嵌套的div p
结构,
<div>
<p>someKey</p> // key of first array value
<div>
<p>someKey2</p>
<div>
<p>SomeKeyThree</p>
</div>
</div>
</div>
我尝试过使用new RecursiveIteratorIterator(new RecursiveArrayIterator($this->getData(), RecursiveIteratorIterator::CHILD_FIRST));
并使用它,但我遇到了麻烦,因为div
的结束标记永远不会正确。一旦iterator
到达数组的底部而没有要进入的数组,我希望它完全停止迭代。
感谢
答案 0 :(得分:1)
你必须递归调用一个函数。
function printUl($arr){
$output = "<ul>";
foreach ($arr as $key => $val){
if (is_array($val)){
$output .= printUl($val);
continue;
}
else{
$output .= "<li>".$val."</li>"
}
$output .= "</ul>";
return $output;
}
}