动态array_merge

时间:2013-02-16 02:24:55

标签: php directory web-crawler array-merge

我有一个看起来像这样的数组:

array(2) { 
    [0]=> array(2) { 
        [0]=> string(52) "./app/pictures/uploads/Audi/A1/name1.jpg" 
        [1]=> string(52) "./app/pictures/uploads/Audi/A1/name2.jpg" 
    } 
    [1]=> array(1) { 
        [0]=> string(52) "./app/pictures/uploads/Audi/A3/name3.jpg" 
    } 
} 

上面的数组可以有两个以上的键(0,1)。更多信息,是我浏览文件夹。如果有子文件夹,它会将每个子文件夹放在一个数组中,并将这些子文件夹的内容/文件放在该数组中。

所以对于我的结果我需要这样的东西:

array(3) { 
    [0]=> string(52) "./app/pictures/uploads/Audi/A1/name1.jpg" 
    [1]=> string(52) "./app/pictures/uploads/Audi/A1/name2.jpg" 
    [2]=> string(52) "./app/pictures/uploads/Audi/A3/name3.jpg" 
}

我意识到array_merge

$array = array_merge($tmparray[0],$tmparray[1]);

现在你可以看到这里的键是固定的。但它们应该是动态的。我怎么能意识到这一点?也许是一个循环,但我没有得到线索,每次在该循环中都不会覆盖$array变量......

对于那个明确的想法可能为时已晚,但我很快就需要一个解决方案。

2 个答案:

答案 0 :(得分:5)

您只需要遍历父数组,然后将子项合并到辅助变量中:

$result = array();
foreach ($directories as $array) {
    $result = array_merge($result, $array);
}

答案 1 :(得分:0)

假设$目录是你的多级数组,$ merged就是你想要的。然后:

$merged = array();
foreach($directories as $dir) {
   foreach($dir as $file) {
       $merged[] = $file;
   }
}