作者p52189 (皮爺)
看板PHP
標題[請益] foreach用法
時間Fri Mar 30 09:58:28 2012
我做了一個小實驗
$arr = array(1,2,3,4);
$arr = en($arr);
echo $arr[0];
function en($arr){
foreach ($arr as $element){
$element = $element+1;
}
return $arr;
}
結果是1
$arr = array(1,2,3,4);
$arr = en($arr);
echo $arr[0];
function en($arr){
for($i = 0 ;$i<(count($arr)-1) ; $i++){
$arr[$i] = $arr[$i]+1;
}
return $arr;
}
結果是2
case 2 是我想要的結果
但是有個問題是我的陣列不是以數字而是以文字索引
該如何修改而能得到上兩個做法的好處呢?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.36.48.169
1F:→ MOONRAKER:case 1有改不是等於沒改 你到底是要case 1還是case 2 03/30 10:51
2F:→ MOONRAKER:foreach改變陣列內容 foreach($arr as & $em) { $em=..} 03/30 10:52
3F:→ schoolpopo:case 1 那個function 沒有什麼意義吧! 03/30 11:19
4F:推 kerash:你先說你對結果的需求吧... 03/30 11:30
抱歉抱歉
發文的時候很趕,沒仔細確認
希望使用foreach的主因是我的Array不一定是以數字來索引
但是我又不知道該怎麼把它寫進去
後來請教了同事修改了寫法
$arr = array(1,2,3,4);
$arr = en($arr);
echo $arr[0];
function en($arr){
foreach ($arr as $key=>$element){
$arr[$key] = $element+1;
}
return $arr;
}
這樣就會正確運作了
之前我只知道case 1 的寫法只能讀
寫的話會寫不到我想要的位置(但不知道怎麼寫才能寫到)
讓大家無言了不好意思
如果有比較好的處理方法也請多指教
謝謝
※ 編輯: p52189 來自: 114.42.240.15 (03/30 21:46)
5F:→ MOONRAKER:阿上面不就告訴你用 ($arr => & $em) 了 03/30 22:22
6F:→ p52189:這樣寫確實比較好 謝謝 03/30 22:29
7F:→ MOONRAKER:看了jquery的$.each()之後,覺得也可以用array_map()做 03/31 18:51