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
相关产品推荐
相关产品推荐

