PHP循环数组递归 [英] PHP Looping through array recursive

查看:150
本文介绍了PHP循环数组递归的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在PHP中循环访问一个数组。循环必须是递归的,因为我现在不知道有多少个数组。它是用于在Symfony2中读取翻译的。



输出格式为:

  ade 
afg
bhi
cjklm
cno



<数组:

$ $ $ $ $ $ $'$'$'$'$'''&';数组'('D' ='e','f'=>'g'),
'b'=>数组('h'=>'i'),
'c'=> (
'l'=>'m')),
'n' =>'o'));

我已经尝试了以下,但这不是最终的解决方案,但是递归正在工作: / p>

 函数displayArrayRecursively($ array)
{
foreach($ array as $ key => $ value ){

if(is_array($ value)){
echo $ key。 <峰; br>;
displayArrayRecursively($ value);
} else {

echo $ key。 '< br>'。 $值。 <峰; br>;





$ b提前致谢!

解决方案

我想你的函数只输出

 d 
e
...

这应该工作:

$ $ p $ code displayArrayRecursively($ array,null);

函数displayArrayRecursively($ array,$ keysString ='')
{
if(is_array($ array)){
foreach($ array as $ key = > $ value){
displayArrayRecursively($ value,$ keysString。$ key。'。');
}
} else {
echo $ keysString。 $数组。 <峰; br /> ;




$ b $ p $它应该和你所需要的非常接近。 / p>

I want to loop through an array in PHP. The loop must be recursive, because I don't now how many arrays-in-arrays there are. It is for reading translations in Symfony2.

The output format is:

a.d.e
a.f.g
b.h.i
c.j.k.l.m
c.n.o

with example array:

$array = array(
    'a' => array('d' => 'e', 'f' => 'g'),
    'b' => array('h' => 'i'),
    'c' => array(
        'j' => array(
            'k' => array(
                'l' => 'm')),
        'n' => 'o'));

I have tried the following, but this is not a final solution, but the recursion is working:

function displayArrayRecursively($array)
{
    foreach ($array as $key => $value) {

        if (is_array($value)) {
            echo $key . '<br>';
            displayArrayRecursively($value);
        } else {

            echo $key . '<br>' . $value . '<br>';       
        }
    }
}

Thanks in advance!

解决方案

I guess your function just output

a
d
e
...

Something like this should work :

displayArrayRecursively($array, null);

function displayArrayRecursively($array, $keysString = '')
{
    if (is_array($array)) {
        foreach ($array as $key => $value) {
            displayArrayRecursively($value, $keysString . $key . '.');
        }
    } else {
        echo $keysString . $array . '<br/> ';
    }
}

It should be pretty close to what you need.

这篇关于PHP循环数组递归的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆