首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Foreach如果是多维的,否则没有循环,最干净的解决方案

Foreach如果是多维的,否则没有循环,最干净的解决方案
EN

Stack Overflow用户
提问于 2012-10-18 16:23:43
回答 2查看 97关注 0票数 0

我有一些标记需要根据数组进行相应的循环,如果它是多维的,我必须单向循环它,如果不是,我不需要循环它。

代码语言:javascript
复制
if (count($data_array) == count($data_array, COUNT_RECURSIVE)) 
    { block of html }
else
{ looped-almost same block of html }

任何人在这方面有更好的解决方案,我都很乐意实现它:)

编辑:为了清楚起见,我有一个表,它有循环的属性,或者没有循环的属性。

代码语言:javascript
复制
foreach($i as $b => $v)
$v['item']

其中,如果数组是多维的,则使用$v['item']遍历表;如果数组不是多维的,则使用$i['item']打印表

这使得我使用两个相同的html块,唯一不同的是$v / $i

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-18 16:41:43

在您更新了答案之后,我认为只需使用isset检查$array['item']就可以解决您的问题。

示例:

代码语言:javascript
复制
if(isset($array['item'])) {
    // Do non-recursive stuff
}
else {
    // Do more checks and recursive stuff
}

的老答案:

你有没有想过is_array

代码语言:javascript
复制
for($yourArray as $key => $value) {
    if (is_array($value)) {
        // Do multidimensional stuff
    }
    else {
        // Do normal stuff
    }
}
票数 2
EN

Stack Overflow用户

发布于 2012-10-18 17:27:29

通过这样做解决了这个问题:

代码语言:javascript
复制
  if(is_array($v))
    {
        $table_array = $v;
    }
    else
    {
        $table_array = $i;
        $single = true;
    }

在foreach循环内部和循环末尾

代码语言:javascript
复制
if(isset($single))
    break;

没那么热..。但至少我不会复制html :)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12950173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档