请原谅极端的编码风格.我是第一次使用API中的PHP和JSON字符串.
我在这里尝试做的事情是打印出用户正在搜索的多个电影结果,如果您浏览它显然不起作用.这是一个搜索结果页面-电影海报和每个项目旁边的一些关键详细信息.
我想要在每个结果旁边显示的内容之一是电影中列出的前5名演员的列表,分别为“主演”,然后电影中列出的所有导演为“导演”的列表.
毫无疑问,问题在于我已经嵌套了foreach语句.但是我不知道有其他方法可以做到这一点.
请最简单的答案对我来说是最好的.我不介意这是不好的做法,只要解决最快的办法就是完美的!
这是代码:
// Check if there were any results
if ($films_result == '["Nothing found."]' || $films_result == null) {
}
else {
// Loop through each film returned
foreach ($films as $film) {
// Set default poster image to use if film doesn't have one
$backdrop_url = 'images/placeholder-film.gif';
// Loop through each poster for current film
foreach($film->backdrops as $backdrop) {
if ($backdrop->image->size == 'thumb') {
$backdrop_url = $backdrop->image->url;
}
}
echo '
' . strtolower($film->name) . '
Starring
';
$num_actors = 0;
foreach ($films[0]->cast as $cast) {
if ($cast->job == 'Actor') {
echo '' . $cast->name . ' ';
$num_actors ;
if ($num_actors == 5)
break;
}
}
echo '
Director
';
foreach ($films[0]->cast as $cast) {
if ($cast->job == 'Director') {
echo '' . $cast->name . ' ';
}
}
echo '
// End films
}
}
结果的示例如下:
其中第120行为foreach($films [0]-> cast如$cast){,而第131行为foreach($films [0]-> cast如$cast){
解决方法:
为什么在foreach中使用$films [0]($films为$film)?您应该使用$film-> cast对吗?并且您应该在循环开始时使用var_dump转储$film并进行检查-确保$cast是一个数组并且已填充.如果不是,请从那里重新工作.来源:https://www.icode9.com/content-1-544801.html