2012-06-27 2 views
5
Array 
(
    [0] => Array 
     (
      [name] => A 
      [id] => 1 
      [phone] => 416-23-55 
      [Base] => Array 
       (
        [city] => toronto 
       ) 

      [EBase] => Array 
       (
        [city] => North York     
       ) 

      [Qty] => 1 
     ) 

(
    [1] => Array 
     (
      [name] => A 
      [id] => 1 
      [phone] => 416-53-66 
      [Base] => Array 
       (
        [city] => qing 
       ) 

      [EBase] => Array 
       (
        [city] => chong     
       ) 

      [Qty] => 2 
     ) 

) 

Comment puis-je obtenir la toute la valeur de clé au format « 0, nom, id, téléphone, Base, ville, Ebase, Qté »?Comment obtenir toutes les clés dans un tableau multidimensionnel en php

Merci!

+3

commençant par une boucle foreach() serait une idée. –

+0

Vous devrez effectuer une première recherche approfondie ou une recherche approfondie en profondeur pour trouver toutes les clés du tableau. Afin de faire cela facilement, vous devrez utiliser une fonction récursive. – Cheesebaron

+0

Pour ce tableau exact '$ keys = array_merge (array_keys ($ array), array_keys (current ($ array)));' le ferait probablement. Mais nous pourrions faire avec savoir exactement ce que vous essayez d'accomplir en faisant cela afin de fournir des conseils sur la ** meilleure ** façon de le faire ... – DaveRandom

Répondre

11

Essayez cette

function array_keys_multi(array $array) 
{ 
    $keys = array(); 

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

     if (is_array($value)) { 
      $keys = array_merge($keys, array_keys_multi($value)); 
     } 
    } 

    return $keys; 
} 
+0

Cela fonctionne très bien! Je vous remercie! – aje

+0

Ceci n'est pas correct pour les tableaux multidimensionnels. –

4

Si vous ne savez pas quelle sera la taille de la matrice, utilisez une fonction récursive avec une boucle foreach qui s'appelle si chaque $ val est un tableau. Si vous connaissez la taille, il vous suffit de passer chaque dimension et d'enregistrer les clés de chaque dimension.

Quelque chose comme ceci:

<?php 
function getKeysMultidimensional(array $array) 
{ 
    $keys = array(); 
    foreach($array as $key => $value) 
    { 
     $keys[] = $key; 
     if(is_array($value)) { 
      $keys = array_merge($keys, getKeysMultidimensional($value)); 
     } 
    } 

    return $keys; 

} 
Questions connexes