为foreach提供的参数无效 - 代表

时间:2014-03-03 13:23:13

标签: php

为什么我会收到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()提供的参数无效

4 个答案:

答案 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循环