我有一些标记需要根据数组进行相应的循环,如果它是多维的,我必须单向循环它,如果不是,我不需要循环它。
if (count($data_array) == count($data_array, COUNT_RECURSIVE))
{ block of html }
else
{ looped-almost same block of html }任何人在这方面有更好的解决方案,我都很乐意实现它:)
编辑:为了清楚起见,我有一个表,它有循环的属性,或者没有循环的属性。
foreach($i as $b => $v)
$v['item']其中,如果数组是多维的,则使用$v['item']遍历表;如果数组不是多维的,则使用$i['item']打印表
这使得我使用两个相同的html块,唯一不同的是$v / $i
发布于 2012-10-18 16:41:43
在您更新了答案之后,我认为只需使用isset检查$array['item']就可以解决您的问题。
示例:
if(isset($array['item'])) {
// Do non-recursive stuff
}
else {
// Do more checks and recursive stuff
}的老答案:
你有没有想过is_array
for($yourArray as $key => $value) {
if (is_array($value)) {
// Do multidimensional stuff
}
else {
// Do normal stuff
}
}发布于 2012-10-18 17:27:29
通过这样做解决了这个问题:
if(is_array($v))
{
$table_array = $v;
}
else
{
$table_array = $i;
$single = true;
}在foreach循环内部和循环末尾
if(isset($single))
break;没那么热..。但至少我不会复制html :)
https://stackoverflow.com/questions/12950173
复制相似问题