Цикл через массив 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
)
)
3 ответа:
используя
foreach
петли без ключаforeach($array as $item) { echo $item['filename']; echo $item['filepath']; // to know what's in $item echo '<pre>'; var_dump($item); }
используя
foreach
петли с ключомforeach($array as $i => $item) { echo $array[$i]['filename']; echo $array[$i]['filepath']; // $array[$i] is same as $item }
используя
for
циклfor ($i = 0; $i < count($array); $i++) { echo $array[$i]['filename']; echo $array[$i]['filepath']; }
var_dump
- это действительно полезная функция, чтобы получить представление массива или объекта.
запуск простой, без HTML:
foreach($database as $file) { echo $file['filename'] . ' at ' . $file['filepath']; }
и вы можете в противном случае манипулировать полями в foreach.
Ок, я знаю, что есть принятый ответ, но... для более особых случаях вы также можете использовать этот:
array_map(function($n) { echo $n['filename']; echo $n['filepath'];},$array);
или более не сложным способом:
function printItem($n){ echo $n['filename']; echo $n['filepath']; } array_map('printItem', $array);
Это позволит вам манипулировать данными более простым способом.