You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP中如何在foreach循环内获取数组的最后一个值?

获取循环内数组的最后一个值

嘿,我来帮你搞定这个问题!你现在需要在嵌套的foreach循环里,每次更新$totals数组后获取它的最后一个值,这里有两种简单可靠的方法:

方法1:使用array_key_last()(推荐,PHP 7.3+)

这个函数会返回数组的最后一个键名,不会修改数组的内部指针,非常安全。你可以直接通过键名拿到对应的值:

$totals = []; 
foreach ($student_due_fee as $key => $fee) { 
    foreach ($fee->fees as $fee_key => $fee_value) { 
        $group_id = $fee_value->fee_groups_id; 
        if(!isset($totals[$group_id])){
            $totals[$group_id] = $fee_value->amount; 
        }else{
            $totals[$group_id] += $fee_value->amount; 
        }
        
        // 获取并输出最后一个值
        $lastKey = array_key_last($totals);
        $lastValue = $totals[$lastKey];
        echo "当前数组最后一个值:" . $lastValue . "\n";
        
        print_r($totals); 
    } 
}

方法2:使用end()(兼容所有PHP版本)

end()函数会将数组的内部指针指向最后一个元素,并返回该元素的值。不过要注意,它会改变数组的指针位置,如果之后你还要遍历$totals数组,记得用reset()把指针恢复到开头:

$totals = []; 
foreach ($student_due_fee as $key => $fee) { 
    foreach ($fee->fees as $fee_key => $fee_value) { 
        $group_id = $fee_value->fee_groups_id; 
        if(!isset($totals[$group_id])){
            $totals[$group_id] = $fee_value->amount; 
        }else{
            $totals[$group_id] += $fee_value->amount; 
        }
        
        // 获取并输出最后一个值
        $lastValue = end($totals);
        echo "当前数组最后一个值:" . $lastValue . "\n";
        
        // 如果之后还要对$totals进行遍历,恢复指针
        reset($totals);
        
        print_r($totals); 
    } 
}

根据你的输出示例,比如第三次循环后$totals是Array ( [69] => 6000 [70] => 3500 ),这两种方法都会返回3500,完全符合你的需求。

内容的提问来源于stack exchange,提问作者Maniraj Murugan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:15:33