1

さて、配列内に複数の配列があります。配列内の配列ごとに、内側の配列を新しいdivにエコーする必要があります。私はこれを行う方法に完全に迷っています

また、配列が空の場合はdivを作成しないでください。

これは、次の出力をvar_dumpするために使用しているコードです。

コード

これは出力です: スクリーンショット

PHP配列のドキュメントを読み、stackoverflowで検索しましたが、答えが見つからないようですので、助けてください。ありがとう!

4

4 に答える 4

2
foreach($video_by_game as $game_video)
    if(count($game_video)) {
        echo '<div>';
        foreach($game_video as $game)
           echo $game->title.'<br />';
        echo '</div>';
    }
于 2012-08-09T11:50:59.493 に答える
1

foreach $ game_video []を実行しないでください、foreach$game_videoを実行してください。

foreach($videos_by_game as $game_video) {
    foreach($game_video as $gv) {
        // do your output
    }
}

$game_videoはすでに配列です。$ game_video []を実行することにより、最初の要素を反復処理しようとしています

于 2012-08-09T11:50:59.197 に答える
0
<?php foreach($video_by_game as $videos): // foreach game ?>
<?php    foreach($videos as $video): // foreach video of the game ?>
<?php      if (empty($video)) continue; // if no videos -/> skip ?>
 <div>
   Title: <?php echo $video->title ?> <br>
   Added by: <?php echo $video->added_by ?> <br>
 </div>
<?php    endforeach ?>
<?php endforeach ?>
于 2012-08-09T11:58:54.043 に答える
0

array_walk関数を使用して、$game_videoarrayの各アイテムを処理できます。

if (!empty($game_video)) {
    echo "<div>";
    array_walk($game_video, function($item,$key){ 
                               echo "The necessary output";
                            });
    echo "</div>";
}
于 2012-08-09T12:02:13.083 に答える