PHP迭代数组

时间:2014-11-27 04:21:34

标签: php arrays multidimensional-array

关于如何在数组中显示可能是多维的数据,我想要一些指导。

我目前正在使用它 -

if (count($array) == count($array, COUNT_RECURSIVE)){
    echo $array['Name'];
    echo $array['Surname'];
    echo $array['Email'];
}else{
    foreach($res as $val){
        echo $val['Name'];      
        echo $val['Surname'];
        echo $val['Email'];
    }
}

这项工作没问题,但如果要显示多个字段,它确实意味着很多重复的代码。

有没有办法压缩代码,所以没有重复?

3 个答案:

答案 0 :(得分:1)

最简单的可能是在必要时修改数组:

if (count($array) == count($array, COUNT_RECURSIVE)) {
    $array = array($array);
}

foreach($res as $val){
    echo $val['Name'];      
    echo $val['Surname'];
    echo $val['Email'];
}

答案 1 :(得分:0)

您需要使用递归函数。这是一个递归函数的例子,它回显了多维数组中的元素:

$array = array(
    array("a", array("a","b","c"),"c"=>"c"),
    array("a","b","c"),
    array("a","b","c"));

displayArray($array);

function displayArray($array)
{
    foreach($array as $k => $v)
    {
        if(is_array($v))
        {
            displayArray($v);
        }
        else
        {
            echo $v."<br />";
        }
    }
}

输出将是:

aabccabcabc

答案 2 :(得分:0)

更简单的方法可能是使用array_walk_recursive函数。在php手册中你也会有一个例子。