Php foreach因某种原因不工作

Php foreach因某种原因不工作,php,foreach,Php,Foreach,我有我的脚本的这一部分,它显示了我的网站上给出的最后一个报价,但出于某种原因,它显示了相同的报价3倍于图像显示 这是脚本附带的代码 <?php foreach($specialoffers as $offer) if ($tmp++ < 3) { ?> <div class="col-md-4"> <div class="col-md-12"> <?php if($specialoffers[0]->price &g

我有我的脚本的这一部分,它显示了我的网站上给出的最后一个报价,但出于某种原因,它显示了相同的报价3倍于图像显示

这是脚本附带的代码

<?php foreach($specialoffers as $offer) if ($tmp++ < 3) { ?>
<div class="col-md-4">
    <div class="col-md-12">
        <?php if($specialoffers[0]->price > 0){ ?> <span class="wow bounce ttu"><?php echo trans('0536');?> <b><?php echo trans('0388');?></b> <small><?php echo $specialoffers[0]->currCode;?></small> <?php echo $specialoffers[0]->currSymbol; ?><?php echo $specialoffers[0]->price;?></span>
        <?php } ?>
        <div class="imgLodBg">
        <div class="load"></div>
        <a href="<?php echo base_url(); ?>offers">
        <img data-wow-duration="0.2s" data-wow-delay="1s" class="wow fadeIn" src="<?php echo $specialoffers[0]->thumbnail;?>">
        </a>
        </div>
    </div>
    <div class="col-md-12">
        <h3 class="offh3"><strong class="ttu"><?php echo character_limiter($specialoffers[0]->title,30);?></strong></h3>
        <p class="offp">
            <?php echo character_limiter($specialoffers[0]->desc,240);?>
            <a href="<?php echo base_url(); ?>offers" >
            Read More
            </a>
        </p>
    </div>
</div>
<?php } ?>


当我尝试下面的更改时,页面崩溃了,我得到了这个错误

[12-Aug-2018 13:48:09 UTC]PHP致命错误:无法使用类型为的对象 中的stdClass作为数组 /home/bannabooking/public_html/beta/themes/default/views/home/index.php 在线152

更改代码:

<?php foreach($specialoffers as $offer) if ($tmp++ < 3) { ?>
<div class="col-md-4">
    <div class="col-md-12">
        <?php if($offer[0]->price > 0){ ?> <span class="wow bounce ttu"><?php echo trans('0536');?> <b><?php echo trans('0388');?></b> <small><?php echo $offer[0]->currCode;?></small> <?php echo $offer[0]->currSymbol; ?><?php echo $offer[0]->price;?></span>
        <?php } ?>
        <div class="imgLodBg">
        <div class="load"></div>
        <a href="<?php echo base_url(); ?>offers">
        <img data-wow-duration="0.2s" data-wow-delay="1s" class="wow fadeIn" src="<?php echo $offer[0]->thumbnail;?>">
        </a>
        </div>
    </div>
    <div class="col-md-12">
        <h3 class="offh3"><strong class="ttu"><?php echo character_limiter($offer[0]->title,30);?></strong></h3>
        <p class="offp">
            <?php echo character_limiter($offer[0]->desc,240);?>
            <a href="<?php echo base_url(); ?>offers" >
            Read More
            </a>
        </p>
    </div>
</div>
<?php } ?>



foreach(){}
中,您已经有了单独的
$offers
对象。因此,您需要直接访问每个
$offer->price
$offer->desc
,而不是通过
$offer[0]->price
访问它们

通常,
foreach(){}
方法如下所示:

$offers = [new Offer('a'), new Offer('b')];
foreach ($offers as $offer) {
    // $offer here sequentially corresponds 
    // to each element of the $offers array
    echo $offer->price;
}
$offers = [new Offer('a'), new Offer('b')];
for ($i = 0; $i < array_length($offers); $i++) {
    echo $offers[$i]->price;
} 
通过
$offers
数组完成迭代的另一种方法可能如下所示:

$offers = [new Offer('a'), new Offer('b')];
foreach ($offers as $offer) {
    // $offer here sequentially corresponds 
    // to each element of the $offers array
    echo $offer->price;
}
$offers = [new Offer('a'), new Offer('b')];
for ($i = 0; $i < array_length($offers); $i++) {
    echo $offers[$i]->price;
} 
$offers=[newoffer('a')、newoffer('b')];
对于($i=0;$i<数组长度($offers);$i++){
echo$报价[$i]->价格;
} 

所以,你只需要坚持这些方法之一。通常情况下,
foreach
看起来更准确。

foreach(){}
中,您已经有了单独的
$offers
对象。因此,您需要直接访问每个
$offer->price
$offer->desc
,而不是通过
$offer[0]->price
访问它们

通常,
foreach(){}
方法如下所示:

$offers = [new Offer('a'), new Offer('b')];
foreach ($offers as $offer) {
    // $offer here sequentially corresponds 
    // to each element of the $offers array
    echo $offer->price;
}
$offers = [new Offer('a'), new Offer('b')];
for ($i = 0; $i < array_length($offers); $i++) {
    echo $offers[$i]->price;
} 
通过
$offers
数组完成迭代的另一种方法可能如下所示:

$offers = [new Offer('a'), new Offer('b')];
foreach ($offers as $offer) {
    // $offer here sequentially corresponds 
    // to each element of the $offers array
    echo $offer->price;
}
$offers = [new Offer('a'), new Offer('b')];
for ($i = 0; $i < array_length($offers); $i++) {
    echo $offers[$i]->price;
} 
$offers=[newoffer('a')、newoffer('b')];
对于($i=0;$i<数组长度($offers);$i++){
echo$报价[$i]->价格;
} 

所以,你只需要坚持这些方法之一。通常情况下,
foreach
看起来更准确。

是一个多维数组吗?哪一行是#152?McEmperon是的,但已经固定为Ivan Velichko回复,Terminus它是第4行这里是
$specialoffers
多维数组?哪一行是#152?McEmperon是的,但已经固定为Ivan Velichko回复,终点站这里是4号线谢谢你救了我谢谢你救了我