php 用递归遍历数组多维数

问题描述

php 用递归遍历数组多维数

Array
(
[dir] => Array
(
[F:开发测试 est9.14香奈儿1-10] => Array
(
[dir] => Array
(
[F:开发测试 est9.14香奈儿1-102362_G_1338059108234.jpg] => Array
(
[file] => Array
(
[0] => F:开发测试 est9.14香奈儿1-102362_G_1338059108234.jpg201205261903496506-1.jpg
[1] => F:开发测试 est9.14香奈儿1-102362_G_1338059108234.jpg201205261903556506-2.jpg
[2] => F:开发测试 est9.14香奈儿1-102362_G_1338059108234.jpg201205261904006506-3.jpg
[3] => F:开发测试 est9.14香奈儿1-102362_G_1338059108234.jpg201205261904076506-4.jpg
[4] => F:开发测试 est9.14香奈儿1-102362_G_1338059108234.jpg201205261904136506-5.jpg
[5] => F:开发测试 est9.14香奈儿1-102362_G_1338059108234.jpg201205261904196506-6.jpg
[6] => F:开发测试 est9.14香奈儿1-102362_G_1338059108234.jpg201205261904256506-7.jpg
[7] => F:开发测试 est9.14香奈儿1-102362_G_1338059108234.jpg201205261904316506-8.jpg
[8] => F:开发测试 est9.14香奈儿1-102362_G_1338059108234.jpg201205261904386506-9.jpg
[9] => F:开发测试 est9.14香奈儿1-102362_G_1338059108234.jpg2362_G_1338059108234.jpg
[10] => F:开发测试 est9.14香奈儿1-102362_G_1338059108234.jpg2362_G_1338059108234.jpg.txt
)

                            )

                        [F:开发测试	est9.14香奈儿1-102559_G_1353138243950.jpg] => Array
                            (
                                [file] => Array
                                    (
                                        [0] => F:开发测试	est9.14香奈儿1-102559_G_1353138243950.jpg201211171543306517兰(鳄鱼皮)-1.jpg
                                        [1] => F:开发测试	est9.14香奈儿1-102559_G_1353138243950.jpg201211171543306517兰(鳄鱼皮)-2.jpg
                                        [2] => F:开发测试	est9.14香奈儿1-102559_G_1353138243950.jpg201211171543306517兰(鳄鱼皮)-3.jpg
                                        [3] => F:开发测试	est9.14香奈儿1-102559_G_1353138243950.jpg201211171543316517兰(鳄鱼皮)-4.jpg
                                        [4] => F:开发测试	est9.14香奈儿1-102559_G_1353138243950.jpg201211171543316517兰(鳄鱼皮)-5.jpg
                                        [5] => F:开发测试	est9.14香奈儿1-102559_G_1353138243950.jpg2559_G_1353138243950.jpg
                                    )

                            )

                        [F:开发测试	est9.14香奈儿1-10新建文件夹] => Array
                            (
                                [dir] => Array
                                    (
                                        [F:开发测试	est9.14香奈儿1-10新建文件夹2558_G_1349878776638.jpg] => Array
                                            (
                                                [file] => Array
                                                    (
                                                        [0] => F:开发测试	est9.14香奈儿1-10新建文件夹2558_G_1349878776638.jpg201210102219156516克鳄鱼纹(古银扣)-1.jpg
                                                        [1] => F:开发测试	est9.14香奈儿1-10新建文件夹2558_G_1349878776638.jpg201210102219156516克鳄鱼纹(古银扣)-2.jpg
                                                        [2] => F:开发测试	est9.14香奈儿1-10新建文件夹2558_G_1349878776638.jpg201210102219166516克鳄鱼纹(古银扣)-3.jpg
                                                        [3] => F:开发测试	est9.14香奈儿1-10新建文件夹2558_G_1349878776638.jpg201210102219176516克鳄鱼纹(古银扣)-4.jpg
                                                        [4] => F:开发测试	est9.14香奈儿1-10新建文件夹2558_G_1349878776638.jpg201210102219176516克鳄鱼纹(古银扣)-5.jpg
                                                        [5] => F:开发测试	est9.14香奈儿1-10新建文件夹2558_G_1349878776638.jpg201210102219186516克鳄鱼纹(古银扣)-6.jpg
                                                        [6] => F:开发测试	est9.14香奈儿1-10新建文件夹2558_G_1349878776638.jpg201210102219186516克鳄鱼纹(古银扣)-7.jpg
                                                        [7] => F:开发测试	est9.14香奈儿1-10新建文件夹2558_G_1349878776638.jpg2558_G_1349878776638.jpg
                                                    )

                                            )

                                        [F:开发测试	est9.14香奈儿1-10新建文件夹shiasd] => Array
                                            (
                                            )

                                    )

                            )

                    )

            )

    )

)
求帮忙 把上面的数组用递归返回所有的键值到一个一维数组中

解决方案

参考下面的例子:函数中使用了参数的引用传递方式

 <?php

function arr_foreach ($arr, &$arr2)
{
    if (!is_array ($arr))
    {
        return false;
    }

    foreach ($arr as $key => $val )
    {
        if (is_array ($val))
        {
            arr_foreach ($val, $arr2);
        }
        else
        {
            //echo $val.'<br/>';
             array_push($arr2, $val); //添加到一维数组中
        }
    }
}

$arr1 = array (1=>array(11,12,13,14=>array(141,142)),2,3,4,5);

echo '<pre>';
print_r($arr1);
echo '<pre>';

$arr2 = array(); //定义一维数组
arr_foreach ($arr1, $arr2); //合并数组

echo '<hr />输出一维数组<pre>';
print_r($arr2);
echo '<pre>';
?>

解决方案二:

http://www.nowamagic.net/php/php_MultiAimensionalArrayTraverse.php

解决方案三:

关于PHP中数组递归遍历的一些见解
php array reader 递归遍历 php 数组
PHP多维数组的递归遍历

时间: 2024-09-18 08:18:53

php 用递归遍历数组多维数的相关文章

c++-有关数组的维数的问题

问题描述 有关数组的维数的问题 不是说数组的维数不能是 非const 变量吗?可下面的程序为什么编译成功而且运行正确?难道是编译器的问题?我目前用的编译器是DEV C++ 5.6.1 #include<iostream> using namespace std; int main() { size_t array_type = 10; int array[array_type]; for (size_t ix = 0; ix != array_type; ix++){ array[ix] =

php递归遍历删除文件的方法_php技巧

本文实例讲述了php递归遍历删除文件的方法.分享给大家供大家参考.具体如下: 这个函数稍加修改就可以变成一个递归文件拷贝函数 <?php function mover($src,$dst) { $handle=opendir($src); // Opens source dir. if (!is_dir($dst)) mkdir($dst,0755); // Make dest dir. while ($file = readdir($handle)) { if (($file!=".&q

PHP递归遍历多维数组实现无限分类的方法_php技巧

本文实例讲述了PHP递归遍历多维数组实现无限分类的方法.分享给大家供大家参考,具体如下: <?php //$data[]=array('id'=>1,'parentid'=>0,'name'=>'中国','img'=>'52091199'); $data[]=array('id'=>1,'parentid'=>0,'name'=>'中国'); $data[]=array('id'=>2,'parentid'=>0,'name'=>'美国')

php递归遍历多维数组的方法_php技巧

本文实例讲述了php递归遍历多维数组的方法.分享给大家供大家参考.具体如下: <?php function get_array_elems($arrResult, $where="array"){ while(list($key,$value)=each($arrResult)){ if (is_array($value)){ get_array_elems($value, $where."[$key]"); } else { for ($i=0; $i<

动态-java 如何生成一个不定维数的数组?

问题描述 java 如何生成一个不定维数的数组? 现有需求如下:有一个List集合,内含N个对象,每个对象都有一个属性level.如果最大的level是5,那么就生成一个4维数组:如果最大的level是4,那就生成一个3维数组,依此类推.想了很多办法,自己实现不了,特来求助 解决方案 你这个是N很大时怎么遍历的问题么?

VB中判断数组维数

数组 设计思想:在VB中数姐最大维数是60,所以我们通过错误捕捉来处理这个问题,在这里我们用到UBound函数Public Function ArrayRange(mArray As Variant) As Integer Dim i As Integer Dim Ret As Integer Dim ErrF As Boolean ErrF = False On Error GoTo ErrHandle '判断代入的参数是否为数组 If Not IsArray(mArray) Then Arr

递归遍历二叉树,怎样保存结点数值到数组里

问题描述 递归遍历二叉树,怎样保存结点数值到数组里 求讲解 递归遍历二叉树的时候,怎样能 在访问每个结点时,将结点的数值存到数组里.最后得到一个结点数值的数组.教材上遍历的时候都是直接输出,没有存到数组里,但是我在编程时遇到了要存到数组里的问题.求大神~~~ 追问: 追问一下,我晚上试了一下,感觉使用数组作为参数看起来可以,但是在递归的时候每次递归数组的角标i都会被重新定义.貌似全局变量或者静态局部变量在递归时都会被重新定义.这怎么处理啊 好心塞 解决方案 将数组作为一个遍历函数的一个参数,遍历

javascript-怎么遍历数组,把里面的数取出来,拼接在一起

问题描述 怎么遍历数组,把里面的数取出来,拼接在一起 比如var a = [124];我想取出124,变为b='124'? 解决方案 b=a.join(""); //数组转化为字符串,用逗号隔开或者b = a.toStringt(); 解决方案二: var a = new Array(""1""2""4"") for(var i = 0;i < a.length; i++) {document.wri

java 二维数组-java中把两个维数相同的矩阵对应的元素相加得到新的矩阵的代码

问题描述 java中把两个维数相同的矩阵对应的元素相加得到新的矩阵的代码 java中把两个维数相同的矩阵对应的元素相加得到新的矩阵的代码怎么写,在int[][] add(int[][]a,int[][] b)中添加代码,实现这个功能 解决方案 循环不就行了,和遍历差不多.