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

看板PHP作者 (水餃)時間13年前 (2012/04/24 13:22), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/6 (看更多)
※ 引述《gname ((′口‵)↗︴<><...<><)》之銘言: : ※ 引述《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 不會錯? 這邊應該是我交代不清楚。 $alldrama = ["stand", "hunker"] ; 所以$take應該是要選擇出stand或者hunker的內容。 : : $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 時的杯具~ 這部分之所以[]和[$j]混用,是因為我認為 若寫成$action[$j] = $mergeDtl[$j]['action'] ; 會一直覆蓋到同一個元素內容。 因為我是期望可以一直儲存下去的。 : : $brand[] = $mergeDtl[$j]['brand'] ; : : } : : } : : 舉個例子 : : : 假設$alldrama有兩個元素,$alldram[0], $alldrama[1] : : 且 : : $alldrama[0]['action'] = ["1", "2", "3"] ; 因此這邊的$alldrama[0]['action'] 事實上應該是 stand['action'] : : $alldrama[1]['action'] = ["4", "5"] ; 這邊也是一樣 $alldrama[1]['action'] 等於 hunker['action'] : : 我預期的結果是: : : $action[] = ["1", "2", "3", "4" ,"5"] ; : : 但實際的執行結果是 : : $action[] = ["1", "2", "3", "1" ,"2"] ; : : 看起來似乎是第二個for迴圈出了問題,但我一直找不到問題所在 : : 這個問題讓我苦惱了很久, : : 請各位幫忙指點迷津,謝謝。 : 你想要的東西似乎用 array merge 可以實現, 但是我從你的程式碼中感覺不出來跟你 : 想做的結果有什麼關聯? 有少PO東西嗎? : -------- : 吃飽飯,血液不在腦中了...XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.117.164.148
文章代碼(AID): #1FbZX_7u (PHP)
文章代碼(AID): #1FbZX_7u (PHP)