Re: [請益] 請教陣列存取的問題消失

看板PHP作者時間13年前 (2012/04/24 13:00), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串2/6 (看更多)
※ 引述《sweetjp6 (水餃)》之銘言: : 大家好,小弟有個關於陣列儲存的問題想請教。 : 我想把每次for迴圈的值都存到同一個陣列裡, : 但從結果看來卻是第一個陣列的值一直重複。 : 以下是我的程式碼: 就用人腦CPU來解好了..XD 以 $alldrama[0]['action'] = ["1", "2", "3"] ; $alldrama[1]['action'] = ["4", "5"] ; 為例 : $mergeDtl = array(); : $action = array(); : $brand = array(); : for ($i=0 ; $i < sizeof($alldrama); $i++){ i的範圍在 0~1 : $take = "SELECT brand, action, sequence FROM robot where : screenplayname= '".$alldrama[$i]"'' " ; $i=0 時 $alldrama[0]=["1", "2", "3"] ; <===這帶進去 $take 不會錯? $i=1 時 $alldrama[1]=["4", "5"] ; <===這帶進去 $take 不會錯? : $result = mysql_query($take, $db_connect) ; : $many = mysql_num_rows($result) ; : for ($j=0 ; $j < $many ; $j++){ : $mergeDtl[] = mysql_fetch_assoc($result) ; ^^^^^^^^^^^^ : $action[] = $mergeDtl[$j]['action'] ; ^^^^^^^^^^^^^ 如果要 [] 就全部都 [] 如果要 [$j] 就全部都 [$j] 別混著用 有時會演變成 debug 時的杯具~ (補充: 取值時不可以用 [], 感謝推文提醒~ ) : $brand[] = $mergeDtl[$j]['brand'] ; : } : } : 舉個例子 : : 假設$alldrama有兩個元素,$alldram[0], $alldrama[1] : 且 : $alldrama[0]['action'] = ["1", "2", "3"] ; : $alldrama[1]['action'] = ["4", "5"] ; : 我預期的結果是: : $action[] = ["1", "2", "3", "4" ,"5"] ; : 但實際的執行結果是 : $action[] = ["1", "2", "3", "1" ,"2"] ; : 看起來似乎是第二個for迴圈出了問題,但我一直找不到問題所在 : 這個問題讓我苦惱了很久, : 請各位幫忙指點迷津,謝謝。 你想要的東西似乎用 array merge 可以實現, 但是我從你的程式碼中感覺不出來跟你 想做的結果有什麼關聯? 有少PO東西嗎? -------- 吃飽飯,血液不在腦中了...XD -- ※ 發信站: 批踢踢實業坊(ptt.cc)

04/24 13:02, , 1F
如果要 [] 就全部都 [] << 這段不一定正確
04/24 13:02, 1F

04/24 13:04, , 2F
傳入時可以用[]塞,但是取出不行,所以要的話也是兩個都要
04/24 13:04, 2F

04/24 13:16, , 3F
嗯, 沒寫完整, 取出時不能 用 []...
04/24 13:16, 3F
※ 編輯: gname 來自: 120.119.112.114 (04/24 13:22)
文章代碼(AID): #1FbZDQTv (PHP)
文章代碼(AID): #1FbZDQTv (PHP)