web-dev-qa-db-fra.com

Comment convertir un tableau bidimensionnel en un tableau dimensionnel en php5

Duplicata possible:
Transformer un tableau multidimensionnel en tableau unidimensionnel

J'ai ce genre de tableau

Array
(
    [0] => Array
        (
            [0] => 88868
        )

    [1] => Array
        (
            [0] => 88867
        )

    [2] => Array
        (
            [0] => 88869
        )

    [3] => Array
        (
            [0] => 88870
        )

)

J'ai besoin de convertir cela en un tableau unidimensionnel. Comment puis je faire ça?

Par exemple comme ça ..

Array
(
    [0] => 88868

    [1] => 88867

    [2] => 88869

    [3] => 88870 

)

Toute fonctionnalité intégrée de php est disponible pour cette conversion de tableau?

27
DEVOPS

Pour votre cas d'utilisation limitée, cela suffira:

$oneDimensionalArray = array_map('current', $twoDimensionalArray);

Cela peut être plus généralisé lorsque les sous-réseaux contiennent de nombreuses entrées:

$oneDimensionalArray = call_user_func_array('array_merge', $twoDimensionalArray);
94
deceze

Le PHP array_merge Documents la fonction peut aplatir votre tableau:

$flat = call_user_func_array('array_merge', $array);

Dans le cas où le tableau d'origine a une profondeur supérieure à 2 niveaux, le SPL dans PHP a un RecursiveArrayIterator vous pouvez utiliser pour l'aplatir:

$flat = iterator_to_array(new RecursiveIteratorIterator(new RecursiveArrayIterator($array)), 0);

Voir aussi: Transformation d'un tableau multidimensionnel en tableau unidimensionnel

16
hakre

essayer:

$new_array = array();
foreach($big_array as $array)
{
    foreach($array as $val)
    {
        array_Push($new_array, $val);
    }    
}

print_r($new_array);
2
redmoon7777
$oneDim = array();
foreach($twoDim as $i) {
  $oneDim[] = $i[0];
}
2
marioosh

Ouaip.

$values = array(array(88868), array(88867), array(88869), array(88870));
foreach ($values as &$value) $value = $value[0];

http://codepad.org/f9KjbCCb

1
benesch