gpt4 book ai didi

php - 除最后一次迭代外,在 foreach 循环中确定并执行操作

转载 作者:搜寻专家 更新时间:2023-10-31 21:25:55 26 4
gpt4 key购买 nike

我正在循环一个 foreach,我需要做一些这样的逻辑:如果迭代不是最后一次。收集价格。当迭代是最后一次时。从总价中减去汇总的价格。除了最后一次迭代价格。我没有得到以下代码。但它不起作用。

    $i = 0;
$credit = '';
$count = count($reslist);

foreach ($reslist as $single_reservation) {
//All of the transactions to be settled by course
//$credit = $this->Reservations_model->find_res_price($single_reservation['value']) * $this->input->post('currency_value');

if ($i > $count && $single_reservation != end($reslist)) {
$gather_sum_in_czk += $this->Reservations_model->find_res_price($single_reservation['value']) * $this->input->post('currency_value');
$credit = $this->Reservations_model->find_res_price($single_reservation['value']) * $this->input->post('currency_value');
}
//Last iteration need to subtract gathered up sum with total.
else {
$credit = $suminczk - $gather_sum_in_czk;
}
$i++;
}

编辑:尝试收集除最后一次以外的所有互动的价格:

          if ($i != $count - 1 || $i !== $count - 1) {
$gather_sum_in_czk += $this->Reservations_model->find_res_price($single_reservation['value']) * $this->input->post('currency_value');
$credit = $this->Reservations_model->find_res_price($single_reservation['value']) * $this->input->post('currency_value');
}

else {
$credit = $suminczk - $gather_sum_in_czk;
}

最佳答案

SPL CachingIterator始终是其内部 iterator 后面的一个元素.因此它可以通过 ->hasNext() 报告它是否会产生下一个元素。 .
例如,我选择 generator证明这种方法不依赖于任何额外的数据,例如计数($数组)。

<?php
// see http://docs.php.net/CachingIterator
//$cacheit = new CachingIterator( new ArrayIterator( range(1,10) ) );
$cacheit = new CachingIterator( gen_data() );

$sum = 0;
foreach($cacheit as $v) {
if($cacheit->hasNext()) {
$sum+= $v;
}
else {
// ...and another operation for the last iteration
$sum-=$v;
}
}

echo $sum; // 1+2+3+4+5+6+7+8+9-10 = 35


// see http://docs.php.net/generators
function gen_data() {
foreach( range(1,10) as $v ) {
yield $v;
}
}

关于php - 除最后一次迭代外,在 foreach 循环中确定并执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36175022/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com