结果应以逗号分隔的方式获得

时间:2017-06-08 10:40:25

标签: foreach codeigniter-3 implode

我的幻灯片代码在静态表单中看起来像这样。

<div id="demo-1" data-zs-src='["<?php echo base_url();?>assets/images/s1.jpg", "<?php echo base_url();?>assets/images/sd1.jpg", "<?php echo base_url();?>assets/images/slide7.jpg", "<?php echo base_url();?>assets/images/sd3.jpg"]' data-zs-overlay="dots">
<div class="demo-inner-content">
  <h1><span>Tasty</span> & <span>Healthy</span></h1>
  <p>For those who have taste for life.</p>
</div>

当我将其更改为动态时,我改变了我的代码

<?php foreach($slide1 as $ss){?>

data-zs-src='["<?php echo base_url();?>uploads/<?php echo $ss->image;?>" ]' alt=""
data-zs-overlay="dots">


<div class="demo-inner-content">
  <h1><span>Tasty</span> & <span>Healthy</span></h1>
  <p>For those who have taste for life.</p>
</div>

我的问题是幻灯片仅在每个图像之后添加逗号时才会起作用我想添加内幕函数但是它不能正常工作而我的内幕代码看起来像这样

 <div id="demo-1"  data-zs-src='[<?php foreach( $slides as $slide ){ $images="<?php echo base_url();?>uploads/<?php echo $slide->image;?>";
?>"<?php echo implode(',',$images);?>"<?php }?>]' 
data-zs-overlay="dots">



<div class="demo-inner-content">
  <h1><span>Tasty</span> & <span>Healthy</span></h1>
  <p>For those who have taste for life.</p>
</div>

1 个答案:

答案 0 :(得分:0)

所以你必须考虑一下你想要在这里实现的目标......

您似乎试图对foreach循环中的每个字符串执行内爆...除了可能生成的错误之外,在每个循环中执行该错误都没有意义。它是你创建数组条目后所做的事情...... Implode适用于数组,而不是字符串。它从数组生成一个字符串。

基本上你想要获取一个对象数组,并希望将它们转换为逗号分隔的字符串。

我不确定为什么你坚持要把所有代码都放在HTML代码中你希望它出现的地方......我会把它分开出来......

<?php foreach ($slides as $slide) {
    $images[] = base_url('uploads/') . $slide->image;
} ?>

<div id="demo-1" data-zs-src='["
    <?= implode(',', $images); ?>
        "]'
     data-zs-overlay="dots">
    <div class="demo-inner-content">
        <h1><span>Tasty</span> & <span>Healthy</span></h1>
        <p>For those who have taste for life.</p>
    </div>

第1步:创建图像数组

<?php foreach ($slides as $slide) {
    $images[] = base_url('uploads/') . $slide->image;
} ?>

这可以在您的控制器或帮助程序中完成,但在您的视图中也同样好。取决于您希望如何构建代码。

第2步:将结果字符串放在您想要的位置。

<div id="demo-1" data-zs-src='["
    <?= implode(',', $images); ?>
        "]'
     data-zs-overlay="dots">
    <div class="demo-inner-content">
        <h1><span>Tasty</span> & <span>Healthy</span></h1>
        <p>For those who have taste for life.</p>
    </div>

您可以对此进行更多重构,但我已经采取了重构的第一步,因此希望对您有所帮助。

注意:我使用<?=代替<?php echo(自 PHP 5.4.0 以来可用),因此如果您使用的是早于5.4.0的内容,请使用{{ 1}}。