看板 PHP 關於我們 聯絡資訊
通常我跑 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
knives:你只想要最後一筆的話,那用array_pop吧 03/25 11:59
JYHuang:if($v == last($arr)) or if empty(next($arr)) 03/25 13:10
chan15:php 有 last 這個 function 嗎? 03/25 13:22
chan15:@knives 我是想要確認這是最後一筆 03/25 13:25
JYHuang:記錯 是end($arr) 03/25 15:44
JYHuang:不過不知道如果陣列裡有跟end一樣的值會不會誤判 03/25 15:45
cyranoh:先用array_pop 再用迴圈跑陣列 跑完再處理用pop取得的元素 03/25 16:45
chan15:用 end 有風險吧,array 裡面有一樣的 value 怎麼辦 03/26 01:26
commontree:foreach($arr as $k => $v) 03/31 12:55
commontree:{ if($k == $counter){ echo $v; //最後一筆 } 03/31 12:56
commontree:或是先用array_reverse,確認第一個比較方便XD 03/31 13:14