2013-03-15 42 views
0

嘿我试图看到什么最高的投票是这个数组内,然后从得到FILE_PATHPHP循环,找到最高值

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找到最高的投票

感谢您的帮助!

+1

对'$ theMovieData ['images'] ['backdrops']'执行foreach。你试图在该数组中的整数上循环,而不是在数组元素上循环。 – 2013-03-15 20:29:37

回答

1

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; 
    } 
} 
+0

工作得很好!感谢您的帮助,安东尼奥! – StealthRT 2013-03-15 20:38:54

0

您需要迭代backdrops而不是votecount。还使用一个临时变量来存储和比较以前的值。

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

if ($item["vote_count"] > $temp) 
$temp = $item["vote_count"]; 
}