如果数组为空,则显示图像

时间:2014-10-10 21:13:22

标签: php foreach

我正在努力使用单个阵列。我有一个滑块,从数组中提取数据并将其显示为fancybox。如果数组中存在数据,它的工作完全正常,但如果没有数据,则无限循环在加载时开始。

基本上,我想要完成的是在其上添加单个图像(例如:此时没有图像.jpg)。

这是代码(原创):

<ul class="sliders-wrap-inner">
<?php 
$gallery = get_post_meta($post->ID, 'gallery_bid', true);
else foreach($gallery as $gale ) {
?>
<li>
<a class="fancybox" data-fancybox-group="gallery" href="<?php echo $gale['image-larger']; ?>"><img src="<?php echo $gale['image-larger']; ?>" alt="" /></a>                                         
</li>
<?php } ?>
</ul> 

编辑过的代码(我试图完成它)

<ul class="sliders-wrap-inner">
    <?php 
    $gallery = get_post_meta($post->ID, 'gallery_bid', true);
    if(empty($gallery))
    echo 'There are no images!';
    else foreach($gallery as $gale ) {
    ?>
    <li>
    <a class="fancybox" data-fancybox-group="gallery" href="<?php echo $gale['image-larger']; ?>"><img src="<?php echo $gale['image-larger']; ?>" alt="" /></a>                                         
    </li>
    <?php } ?>
    </ul> 

先谢谢大家!

2 个答案:

答案 0 :(得分:2)

您没有无限循环,但您可能看不到任何/事情出错,因为结束}位于错误的位置。可能在文档末尾的某处?

将结束}移至</li></ul>之间:

<li>
<a class="fancybox" data-fancybox-group="gallery" href="<?php echo $gale['image-larger']; ?>"><img src="<?php echo $gale['image-larger']; ?>" alt="" /></a>
</li>
<?php
}
?>
</ul>

答案 1 :(得分:0)

$Array = array();
$Array_Count = count($Array);

if ($Array_Count === 0){
  // echo image here
}else foreach($Array AS $Key => $Value){
  // work with array
}

或者更适合您提供的内容:

<ul class="sliders-wrap-inner">
    <?php
        $Gallery = get_post_meta($post->ID, 'gallery_bid', true);
        if (count($Gallery) === 0){
            // print no image here The slider should adjust automatically depending on the fed images
        }else foreach($Gallery AS $Gale){
            echo '<li>';
            echo '<a class="fancybox" data-fancybox-group="gallery" href="'.$Gale['image-larger'].'"><img src="'.$Gale['image-larger'].'" alt=""></a>';
            echo '</li>';
        } ?>
</ul>