2010-12-11 74 views
46

Tôi có mảng này ... làm thế nào để bạn in từng filepath và tên tập tin? Cách tốt nhất để làm việc này là gì?Lặp qua một mảng 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 dưới dạng & $ value) { print_r ($ value); echo "


"; } – esafwan

Trả lời

125

Sử dụng foreach vòng lặp mà không cần chìa khóa

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

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

Sử dụng foreach vòng lặp với phím

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

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

Sử dụng for loop

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

var_dump là một chức năng thực sự hữu ích để có được một bản chụp của một arr ay hoặc đối tượng.

+2

Đồng thời kiểm tra 'var_export', in mã PHP hợp lệ. Bạn có thể lưu nó vào một tệp, sau đó viết mã để lặp lại nó ở đó trước khi đặt nó vào mã chính của bạn. – Ben

+0

là sự cố khi sử dụng phương thức vòng lặp. Tôi đọc ở đâu đó chỉ mục có thể không tồn tại ?? – bakalolo

+0

Nếu chỉ mục không được định nghĩa như '['a', 'b', 'c']', thì giá trị của nó là 0,1 và 2. – Ish

5

Bắt đầu đơn giản, không có HTML:

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

Và bạn khác có thể thao tác các trường trong foreach.

5

Ok, tôi biết có một câu trả lời chấp nhận nhưng ... đối với trường hợp đặc biệt hơn nữa bạn cũng có thể sử dụng cái này:

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

Hoặc theo một cách hơn un-phức tạp:

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

array_map('printItem', $array); 

này sẽ cho phép bạn thao tác dữ liệu theo cách dễ dàng hơn.

Các vấn đề liên quan