循环通过数组PHP

esa*_*wan 93 php printing arrays loops

我有这个数组...你怎么打印每个文件路径和文件名?做这个的最好方式是什么?

  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 
           ) 
  ) 
Run Code Online (Sandbox Code Playgroud)

Ish*_*Ish 214

使用foreach没有键的循环

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

    // to know what's in $item
    echo '<pre>'; var_dump($item);
}
Run Code Online (Sandbox Code Playgroud)

使用foreach循环键

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

    // $array[$i] is same as $item
}
Run Code Online (Sandbox Code Playgroud)

使用for循环

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

var_dump 获取数组或对象的快照是一个非常有用的函数.

  • 还要检查`var_export`,它打印有效的PHP代码.您可以将其保存到文件中,然后在将代码放入主代码之前编写代码以在其上循环. (3认同)

小智 6

好的,我知道有一个公认的答案,但是...对于更多特殊情况,你也可以使用这个:

array_map(function($n) { echo $n['filename']; echo $n['filepath'];},$array);
Run Code Online (Sandbox Code Playgroud)

或者以更复杂的方式:

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

array_map('printItem', $array);
Run Code Online (Sandbox Code Playgroud)

这将允许您以更简单的方式操作数据.


Sil*_*Net 5

从简单开始,没有HTML:

foreach($database as $file) {
    echo $file['filename'] . ' at ' . $file['filepath'];
}
Run Code Online (Sandbox Code Playgroud)

而且你可以操纵foreach中的字段.


Kav*_*ana 5

foreach($array as $item=>$values){
     echo $values->filepath;
    }
Run Code Online (Sandbox Code Playgroud)

  • 当用其他三个现有答案回答一个八年前的问题时,解释你的答案给这个问题带来了什么新方法是很有用的。同样在这种情况下,问题是打印“每个文件路径和文件名”而不是仅打印文件路径。 (3认同)