为什么我会收到PHP警告:为foreach()提供的参数无效
我脚本中的这三个部分。
$specifiedArtist=specifiedArtist();
if(!$specifiedArtist[2]): //if no specified artist, display archive
?>
<section id='rgalartspage'>
<header class='bakery b-top'>
<h1><?php echo get_the_title(36); ?></h1>
<h2><?php echo get_the_title(33); ?></h2>
</header>
<div class='entry-content'>
<?php
foreach($specifiedArtist[1] as $artid => $galarr):
?>
<article class='wbox artistbox'>
<a href='<?php echo get_permalink(285).'?q='.$artid; ?>'>
<h3><?php echo get_the_title($artid); ?></h3>
<div class='artimghold'>
<img src="<?php
//get latest gallery pic
$images=get_post_meta($galarr[0],'wpcf-images',FALSE);
echo $images[0];
//get artists' main pic
?>">
</div>
</a>
</article>
<?php
endforeach;
?>
为什么我会收到PHP警告:为foreach()提供的参数无效
答案 0 :(得分:1)
您收到此错误,因为您尝试循环的变量($specifiedArtist[1]
)不是数组。看起来你可能想尝试
foreach($specifiedArtist as $artid => $galarr): //Removed [1]
在foreach
if(is_array($specifiedArtist) && !empty($specifiedArtist)) {
foreach($specifiedArtist[1] as $artid => $galarr):
//Do stuff in loop
endforeach;
}
答案 1 :(得分:0)
首先检查它是否为数组,而不是像下面那样使用foreach:
$count = count($specifiedArtist[1]);
if($count>0) {
foreach($specifiedArtist[1] as $artid => $galarr):
// your code
endforeach;
}
答案 2 :(得分:0)
因为你想要迭代的东西不是数组。试试
var_dump($specifiedArtist[1])
答案 3 :(得分:0)
错误使用Foreach,您应首先检查输入是否为数组。在你的情况下,它可能是'空'值输入到foreach循环