2010-12-11 17 views
46

Ich habe dieses Array ... Wie drucken Sie den Dateipfad und den Dateinamen? Was ist der beste Weg, dies zu tun?Schleife durch ein Array 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-> field_image als & $ value) { print_r ($ value); Echo "


"; } – esafwan

Antwort

125

Mit foreach Schleife ohne Schlüssel

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

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

Mit foreach Schleife mit Schlüssel

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

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

Mit for Schleife

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

var_dump eine wirklich nützliche Funktion ist eine Momentaufnahme eines bekommen arr ay oder Objekt.

+2

Überprüfen Sie auch 'var_export', die gültigen PHP-Code druckt. Sie können das in einer Datei speichern und dann den Code schreiben, um ihn dort zu durchlaufen, bevor Sie ihn in Ihren Hauptcode einfügen. – Ben

+0

ist hier ein Problem bei der Verwendung der for-Schleife-Methode. Ich habe irgendwo gelesen, dass der Index vielleicht nicht existiert ?? – bakalolo

+0

Wenn der Index nicht definiert ist wie '['a', 'b', 'c']', dann sind die Werte 0,1 und 2. – Ish

5

starten einfach, ohne HTML:

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

Und Sie können sonst die Felder in der foreach manipulieren.

5

Ok, ich weiß, es ist eine akzeptierte Antwort, aber ... für mehr Sonderfällen könnten Sie auch diese verwenden ein:

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

oder in einer nicht-komplex:

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

array_map('printItem', $array); 

Diese ermöglicht es Ihnen, die Daten auf eine einfachere Weise zu manipulieren.