[請益] foreach用法

看板PHP作者 (皮爺)時間12年前 (2012/03/30 09:58), 編輯推噓1(106)
留言7則, 4人參與, 最新討論串1/2 (看更多)
我做了一個小實驗 $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

03/30 10:51, , 1F
case 1有改不是等於沒改 你到底是要case 1還是case 2
03/30 10:51, 1F

03/30 10:52, , 2F
foreach改變陣列內容 foreach($arr as & $em) { $em=..}
03/30 10:52, 2F

03/30 11:19, , 3F
case 1 那個function 沒有什麼意義吧!
03/30 11:19, 3F

03/30 11:30, , 4F
你先說你對結果的需求吧...
03/30 11:30, 4F
抱歉抱歉 發文的時候很趕,沒仔細確認 希望使用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)

03/30 22:22, , 5F
阿上面不就告訴你用 ($arr => & $em) 了
03/30 22:22, 5F

03/30 22:29, , 6F
這樣寫確實比較好 謝謝
03/30 22:29, 6F

03/31 18:51, , 7F
看了jquery的$.each()之後,覺得也可以用array_map()做
03/31 18:51, 7F
文章代碼(AID): #1FTHD68n (PHP)
文章代碼(AID): #1FTHD68n (PHP)