作者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