0

ねえ、私はこの配列内で最も高い投票数が何であるかを確認し、そこからfile_pathを取得しようとしています。

images =>
  backdrops =>
    0 =>
      file_path => /gM3KKiN80qbJgKHjPnmAfwxSicG.jpg
      width => 1920
      height => 1080
      iso_639_1 =>
      aspect_ratio => 1.78
      vote_average => 5.4529616724739
      vote_count => 19
    1 =>
      file_path => /7u3pxc0K1wx32IleAkLv78MKgrw.jpg
      width => 1920
      height => 1080
      iso_639_1 =>
      aspect_ratio => 1.78
      vote_average => 5.4509803921569
      vote_count => 22
    2 =>
      etc etc....

これを試してみましたが、データを取得できませんでした。

foreach($theMovieData['images']['backdrops'][0]['vote_count'] as $key => $item) {
    echo $item;
}

私は何を間違ってやっているでしょうか?そして、最高の投票を見つけた後、どのようにfile_pathを取得しますか?

助けてくれてありがとう!

4

2 に答える 2

2

foreachループは配列をループすることを目的としています。投稿されたコードサンプルで達成しようとしているのは、単一変数のループです。コードを次のように変更する必要があります。

$max = 0;
$pathMax = null;
foreach ($theMovieData['images']['backdrops'] as $data){
    $voteCount = $data['vote_count'];
    $path = $data['file_path'];
    if ((int)$voteCount > $max){
        $max = (int)$voteCount;
        $pathMax = $path;
    }
}
于 2013-03-15T20:33:59.597 に答える
0

backdropsではなく、繰り返す必要がありvotecountます。また、一時変数を使用して、前の値を格納および比較します。

$temp = -1;
foreach($theMovieData['images']['backdrops'] as $key => $item) {

if ($item["vote_count"] > $temp)
$temp = $item["vote_count"];
}
于 2013-03-15T20:32:24.683 に答える