2010-12-16 2 views
0

Avoir un peu brainfart ici, j'ai un tableau qui ressemble à ceci:remove PHP tableaux superflus de tableaux

Array ( 
[0] => Array ('fruit' => 'orange',) 
[1] => Array ('fruit' => 'apple',) 
) 

annnnnnnnd il est arrivé à finir comme ça:

Array ( 
[0] => 'orange' 
[1] => 'apple' 
) 

Comment est-ce que je fais ceci?

Répondre

3

Vous pouvez utiliser array_map et array_shift

$array = array_map('array_shift', $array); 

ou boucle juste au-dessus:

foreach($array as $key=>$value) { 
    $array[$key] = array_shift($value); 
} 

Mise à jour: L'utilisation array_shift est beaucoup mieux si vous voulez toujours obtenir la première valeur ou si les sous-matrices ne contiennent qu'une seule valeur de toute façon ...

Si vous avez un plus compl structure glacée, par ex. plus d'éléments dans les sous-réseaux, alors vous voulez essentiellement flatten your array.

+0

n'a pas 'extract' existent déjà dans le noyau de PHP? –

+0

@Jacob Relkin: Vrai .... laissez-moi le renommer. –

+0

array_map (tableau 'reset' $); a fait l'affaire! – onoe

0

Si la clé est pas toujours le même (à savoir si elle est pas toujours des fruits), vous pouvez le faire:

<?php 
$source = array( 
    0 => array ('fruit' => 'orange',) 
    1 => array ('fruit' => 'apple',) 
);  

$destination = array(); 

foreach($source as $source_array) 
{ 
    foreach($source_array as $value) 
    { 
     $destination[] = $value; 
    } 
} 
?>