Loop door een PHP

Ik heb deze array … hoe druk je elk van de FilePath en FileName af? Wat is de beste manier om dit te doen?

 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 
           ) 
  ) 

Antwoord 1, autoriteit 100%

Gebruik foreachloop zonder sleutel

foreach($array as $item) {
    echo $item['filename'];
    echo $item['filepath'];
    // to know what's in $item
    echo '<pre>'; var_dump($item);
}

Gebruik foreachloop met sleutel

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

Gebruik forloop

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

var_dumpis een erg handige functie om een momentopname van een array of object te krijgen.


Antwoord 2, autoriteit 4%

Ok, ik weet dat er een geaccepteerd antwoord is, maar… voor meer speciale gevallen kun je deze ook gebruiken:

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

of op een meer niet-complexe manier:

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

Hiermee kunt u de gegevens op een eenvoudige manier manipuleren.


Antwoord 3, Autoriteit 2%

Simple, zonder HTML:

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

en u kunt de velden in het uitkijken anders manipuleren.


Antwoord 4, Autoriteit 2%

foreach($array as $item=>$values){
     echo $values->filepath;
    }

Antwoord 5

U kunt dit ook gebruiken zonder extra variabelen te maken, noch het kopiëren van de gegevens in het geheugen zoals Foreach () doet.

while (false !== (list($item, $values) = each($array)))
{
    ...
}

Other episodes