1

次のような配列があります。

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" 
    } 
} 

上記の配列には、2 つ以上のキー (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たぶんループですが、変数がそのループで毎回オーバーライドされないという手がかりが得られませんでした...

明確な心を持つには遅すぎるかもしれませんが、すぐに解決策が必要です.

4

2 に答える 2

7

親配列をループして、子を補助変数にマージするだけです。

$result = array();
foreach ($directories as $array) {
    $result = array_merge($result, $array);
}
于 2013-02-16T02:55:52.387 に答える
0

$directories がマルチレベル配列で、$merged が必要なものであるとします。それで:

$merged = array();
foreach($directories as $dir) {
   foreach($dir as $file) {
       $merged[] = $file;
   }
}
于 2013-02-16T02:30:08.803 に答える