2014-04-20 5 views
-1

comment puis-je faire ce tableau:Tableau supprimer tableau numérique parent

array(2) { 
    [0]=> 
    array(1) { 
    ["plz"]=> 
    string(4) "4460" 
    } 
    [1]=> 
    array(1) { 
    ["plz"]=> 
    string(4) "4000" 
    } 
} 

Devient quelque chose comme ceci juste besoin des valeurs dans une des clés de tableau doesnt:

array(2) { 
    [0]=> 
    string(4) "4460" 
    [1]=> 
    string(4) "4000" 
} 

est là une fonction d'aide ou quelque chose qui peut aider?

+0

double possible de [Y at-il une fonction d'extraire une « colonne » d'un tableau en PHP?] (Http://stackoverflow.com/questions/1494953/is-there -a-function-to-extract-a-column-from-a-array-in-php) –

Répondre

7

Si la clé est connue à l'avance:

Si vous utilisez 5.5+ PHP, vous pouvez utiliser array_column() pour extraire tous les sous-réseaux avec plz clé:

$result = array_column($array, 'plz'); 

La même chose peut être réalisé en utilisant array_map() si vous utilisez une ancienne version de PHP:

$result = array_map(function($sub) { return $sub['plz']; }, $array); 

Si la clé ne sait pas à l'avance:

Utilisation array_walk_recursive():

$result = array(); 
array_walk_recursive($array, function($v) use (&$result) { $result[] = $v; }); 

Notez que cela fonctionne récursive, il serait encore travailler si vous avez des réseaux plus complexes.

Sinon, vous pouvez utiliser RecursiveIteratorIterator classe:

$result = array(); 
$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($array)); 

foreach($iterator as $value) { 
    $result[] = $value; 
} 

Pour plus de détails, reportez-vous cette question: How does RecursiveIteratorIterator work in PHP?

2

Une autre alternative:

$array = call_user_func_array('array_merge', array_map('array_values', $array)); 
  1. Obtenir des tableaux indexés numériquement de la sous-réseaux utilisant array_values()
  2. fusionner ces deux tableaux en utilisant array_merge()
Questions connexes