2015-08-09 1 views
-1

J'ai la sortie suivante créé à partir d'un script PHP J'ai créé:Foreach Dimension Multiple Tableau

Array 
(
[cage] => OK 
[logicaldrive] => Array 
    (
     [logicaldrive 1] => Array 
      (
       [size] => 2.7 TB 
       [raid] => RAID 1 
       [status] => OK 
      ) 
    ) 

[physicaldrive] => Array 
    (
     [logicaldrive 1] => Array 
      (
       [physicaldrive 2I:1:1] => Array 
        (
         [bay] => port 2I:box 1:bay 1 
         [type] => SATA 
         [size] => 3 TB 
         [status] => OK 
        ) 

       [physicaldrive 2I:1:2] => Array 
        (
         [bay] => port 2I:box 1:bay 2 
         [type] => SATA 
         [size] => 3 TB 
         [status] => OK 
        ) 
      ) 

    ) 

Je voudrais être en mesure de formater ces données dans une table, je l'ai essayé mais incapable d'exécuter un foreach sur les sections du tableau, par exemple, si je veux une table pour avoir les informations de:

[logicaldrive] => Array 
    (
     [logicaldrive 1] => Array 
      (
       [size] => 2.7 TB 
       [raid] => RAID 1 
       [status] => OK 
      ) 

    ) 

Je ne peux pas trouver comment obtenir les valeurs de taille, raid, statut sans connaître la clé (logicaldrive 1) qui, selon le système sur lequel le code a été exécuté, sera différent à chaque fois.

Répondre

1

Try this ...

$all_data; //your complete array 

foreach($all_data as $key=>$sub_array){ 
    if($key === "logicaldrive"){ 
     foreach($sub_array as $key=>$sub_sub_array){ 
      echo $key;//logicaldrive 1 
      foreach($sub_sub_array as $key=>$fact){ 
       echo '<td>'.$key.'='.$fact.'<td>';//size=2.7 TB,raid=RAID 1, status=OK 
      } 
     } 
    } 
} 

Évidemment, vous aurez besoin d'envelopper les éléments de façon appropriée td c'est juste un exemple pour vous aller avec la logique

+0

Cela fonctionne parfaitement, mais pour une raison quelconque, il ajoute une banque supplémentaire entre chaque résultat dans l'instruction foreach. –

+0

Je suppose que c'est dans le second sous-tableau avec les clés 'physicaldrive' à droite? –

+0

Dans chaque niveau de la boucle, faites un 'print_r ($ array)' pour que vous puissiez voir la structure de chaque sous-tableau. Cela rendra plus facile la visualisation de ce qui se passe et vous devriez voir où se trouve le blanc –