58 votes

Transformer un tableau multidimensionnel en tableau unidimensionnel

Cela fait un moment que je me tape la tête sur celui-ci.

J'ai ce tableau multidimensionnel :

 Array
(
    [0] => Array
        (
            [0] => foo
            [1] => bar
            [2] => hello
        )

    [1] => Array
        (
            [0] => world
            [1] => love
        )

    [2] => Array
        (
            [0] => stack
            [1] => overflow
            [2] => yep
            [3] => man
        )

Et j'ai besoin d'obtenir ceci :

 Array
(
    [0] => foo
    [1] => bar
    [2] => hello
    [3] => world
    [4] => love
    [5] => stack
    [6] => overflow
    [7] => yep
    [8] => man
)

Des idées?

Toutes les autres solutions que j'ai trouvées résolvent des tableaux multidimensionnels avec des clés différentes. Mes tableaux utilisent uniquement des touches numériques simples.

88voto

deceze Points 200115
array_reduce($array, 'array_merge', array())

Exemple:

 $a = array(array(1, 2, 3), array(4, 5, 6));
$result = array_reduce($a, 'array_merge', array());

Résultat:

 array[1, 2, 3, 4, 5, 6];

17voto

Don't Panic Points 26317

Depuis PHP 5.6, cela peut être fait plus simplement avec le déballage des arguments .

 $flat = array_merge(...$array);

12voto

Grexis Points 1370

C'est vraiment tout ce qu'il y a à faire :

 foreach($array as $subArray){
    foreach($subArray as $val){
        $newArray[] = $val;
    }
}

3voto

n00b Points 59
foreach ($a as $v1) {
    foreach ($v1 as $v2) {
        echo "$v2\n";
    }
}

où $a est le nom de votre tableau. pour les détails

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X