作者chan15 (ChaN)
看板PHP
标题[请益] 回圈取最後一笔资料
时间Fri Mar 25 11:54:26 2011
通常我跑 foreach 跑 array 的时候
如果要针对最後一笔资料做事情
会用一个 counter 先纪录再比对
而且如果 index 不能拿来当作比对对象的话
可能还要另外用一个 counter 去纪录
有办法在 foreach 或 for 回圈里面直接知道这是最後一笔资料吗?
<?php
$arr = array(
'name' => 'Chan',
'age' => 31,
'job' => 'rd');
$counter = (count($arr)-1);
$count = 0;
foreach ($arr as $v) {
echo $v;
if ($count == $counter) echo ' (this is last)';
echo '<br />';
$count++;
}
?>
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.250.9.172
1F:→ knives:你只想要最後一笔的话,那用array_pop吧 03/25 11:59
2F:推 JYHuang:if($v == last($arr)) or if empty(next($arr)) 03/25 13:10
3F:→ chan15:php 有 last 这个 function 吗? 03/25 13:22
4F:→ chan15:@knives 我是想要确认这是最後一笔 03/25 13:25
5F:推 JYHuang:记错 是end($arr) 03/25 15:44
6F:→ JYHuang:不过不知道如果阵列里有跟end一样的值会不会误判 03/25 15:45
7F:→ cyranoh:先用array_pop 再用回圈跑阵列 跑完再处理用pop取得的元素 03/25 16:45
8F:→ chan15:用 end 有风险吧,array 里面有一样的 value 怎麽办 03/26 01:26
9F:→ commontree:foreach($arr as $k => $v) 03/31 12:55
10F:→ commontree:{ if($k == $counter){ echo $v; //最後一笔 } 03/31 12:56
11F:→ commontree:或是先用array_reverse,确认第一个比较方便XD 03/31 13:14