2010-12-11 46 views
46

J'ai ce tableau ... comment imprimer chaque chemin de fichier et chaque nom de fichier? Quelle est la meilleure façon de procéder?Boucle dans un tableau php

Array ( 
    [0] => Array ( 
      [fid] => 14 
      [list] => 1 
      [data] => Array ( 
         [alt] => 
         [title] => 
         ) 
      [uid] => 1 
      [filename] => trucks_10785.jpg 
      [filepath] => sites/default/files/trucks_10785.jpg 
      [filemime] => image/jpeg 
      [filesize] => 143648 
      [status] => 1 
      [timestamp] => 1291424171 
      [nid] => 8 
      ) 
    [1] => Array ( 
      [fid] => 19 
      [list] => 1 
      [data] => Array ( 
         [alt] => 
         [title] => 
         ) 
      [uid] => 1 
      [filename] => school.jpg 
      [filepath] => sites/default/files/school.jpg 
      [filemime] => image/jpeg 
      [filesize] => 115355 
      [status] => 1 
      [timestamp] => 1292029563 
      [nid] => 8 
      ) 
    [2] => Array ( 
      [fid] => 20 
      [list] => 1 
      [data] => Array ( 
         [alt] => 
         [title] => 
         )  
      [uid] => 1 
      [filename] => Life_is_wonderful_by_iNeedChemicalX.jpg 
      [filepath] => sites/default/files/Life_is_wonderful_by_iNeedChemicalX_0.jpg 
      [filemime] => image/jpeg 
      [filesize] => 82580 
      [status] => 1 
      [timestamp] => 1292029572 
      [nid] => 8 
      ) 
    [3] => Array ( 
      [fid] => 21 
      [list] => 1 
      [data] => Array ( 
         [alt] => 
         [title] => 
         ) 
      [uid] => 1 
      [filename] => school_rural.jpg 
      [filepath] => sites/default/files/school_rural.jpg 
      [filemime] => image/jpeg 
      [filesize] => 375088 
      [status] => 1 
      [timestamp] => 1292029582 
      [nid] => 8 
      ) 
) 
+0

foreach ($ node-> image_zone en tant que & $ valeur) { print_r ($ value); echo "


"; } – esafwan

Répondre

125

En utilisant la boucle foreach sans clé

foreach($array as $item) { 
    echo $item['filename']; 
    echo $item['filepath']; 

    // to know what's in $item 
    echo '<pre>'; var_dump($item); 
} 

En utilisant la boucle foreach avec clé

foreach($array as $i => $item) { 
    echo $array[$i]['filename']; 
    echo $array[$i]['filepath']; 

    // $array[$i] is same as $item 
} 

En utilisant for boucle

for ($i = 0; $i < count($array); $i++) { 
    echo $array[$i]['filename']; 
    echo $array[$i]['filepath']; 
} 

var_dump est une fonction très utile pour obtenir un aperçu d'un arr ay ou objet.

+2

Consultez aussi 'var_export', qui affiche le code PHP valide. Vous pouvez enregistrer cela dans un fichier, puis écrire le code pour le faire passer en boucle avant de le placer dans votre code principal. – Ben

+0

est ici un problème avec l'utilisation de la méthode de boucle for. J'ai lu quelque part que l'index pourrait ne pas exister? – bakalolo

+0

Si l'index n'est pas défini comme '['a', 'b', 'c']', alors ses valeurs sont 0,1 et 2. – Ish

5

À partir simple, sans HTML:

foreach($database as $file) { 
    echo $file['filename'] . ' at ' . $file['filepath']; 
} 

Et vous pouvez manipuler les champs de la foreach.

5

Ok, je sais qu'il ya une réponse acceptée mais ... pour les cas plus spéciaux que vous aussi pouvez utiliser celui-ci:

array_map(function($n) { echo $n['filename']; echo $n['filepath'];},$array); 

Ou de façon plus un complexe:

function printItem($n){ 
    echo $n['filename']; 
    echo $n['filepath']; 
} 

array_map('printItem', $array); 

Cette vous permettra de manipuler les données plus facilement.