看板 PHP 關於我們 聯絡資訊
我做了一個小實驗 $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
MOONRAKER:case 1有改不是等於沒改 你到底是要case 1還是case 2 03/30 10:51
MOONRAKER:foreach改變陣列內容 foreach($arr as & $em) { $em=..} 03/30 10:52
schoolpopo:case 1 那個function 沒有什麼意義吧! 03/30 11:19
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)
MOONRAKER:阿上面不就告訴你用 ($arr => & $em) 了 03/30 22:22
p52189:這樣寫確實比較好 謝謝 03/30 22:29
MOONRAKER:看了jquery的$.each()之後,覺得也可以用array_map()做 03/31 18:51