1. ホーム
  2. php

[解決済み] PHP でこの配列をループする最も良い方法は何ですか?

2022-03-01 01:28:45

質問

この配列があるのですが、filepathとfilenameのそれぞれをどのように表示するのでしょうか?これを行うための最良の方法は何ですか?

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

解決方法は?

を使用することで 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 $item[$i]['filename'];
    echo $item[$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 は、配列やオブジェクトのスナップショットを取得するのにとても便利な関数です。