PHP循环数组递归 [英] PHP Looping through array recursive
问题描述
我想在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屋!