2010-12-11 8 views
46

私はこの配列を持っています...どのようにファイルパスとファイル名のそれぞれを出力しますか?これを行う最善の方法は何ですか?配列をループする

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 as&$ value){ print_r($ value); echo "


"; } – esafwan

答えて

125

のスナップショットを取得するには、キー

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

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

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

var_dumpがあるforループに本当に便利な機能を使うと、キー

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

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

使用foreachループなしforeachループを使用してアールayまたはオブジェクト。

+2

有効なPHPコードを出力する 'var_export'もチェックアウトします。これをファイルに保存してから、メインコードに入れる前にループするコードを記述することができます。 – Ben

+0

ここでは、forループメソッドの使用に関する問題があります。私はどこかにインデックスが存在しないかもしれないと読んだ? – bakalolo

+0

インデックスが '['a'、 'b'、 'c']'のように定義されていない場合、値は0,1,2です。 – Ish

5

なしHTMLで、シンプルなスタート:

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

そして、あなたがそれ以外のforeach内のフィールドを操作することができます。

5

[OK]を、私は受け入れ答えがあると知っているが...もっと特別な場合のために、あなたも、このいずれかを使用することができます

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

または無コンプレックスより方法で:

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

array_map('printItem', $array); 

この簡単な方法でデータを操作することができます。