我有一个看起来像这样的数组:
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
变量......
对于那个明确的想法可能为时已晚,但我很快就需要一个解决方案。
答案 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;
}
}