PHP 板


LINE

看板 PHP  RSS
大家好,小弟有個關於陣列儲存的問題想請教。 我想把每次for迴圈的值都存到同一個陣列裡, 但從結果看來卻是第一個陣列的值一直重複。 以下是我的程式碼: $mergeDtl = array(); $action = array(); $brand = array(); for ($i=0 ; $i < sizeof($alldrama); $i++){ $take = "SELECT brand, action, sequence FROM robot where screenplayname= '".$alldrama[$i]."' " ; $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'] ; $brand[] = $mergeDtl[$j]['brand'] ; } } 舉個例子 : 假設$alldrama有兩個元素,$alldram[0], $alldrama[1] 且 $alldrama[0]['action'] = ["hi", "i", "am"] ; $alldrama[1]['action'] = ["trying", "it"] ; 我預期的結果是: $action[] = ["hi", "i", "am", "trying" ,"it"] ; 但實際的執行結果是 $action[] = ["hi", "i", "am", "hi" ,"i"] ; 看起來似乎是第二個for迴圈出了問題,但我一直找不到問題所在 這個問題讓我苦惱了很久, 請各位幫忙指點迷津,謝謝。 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.117.164.148
1F:→ mervynW:mysql_fetch_assoc[$result] ?? mysql_fetch_assoc() ?? 04/24 12:03
2F:→ sweetjp6:那邊寫錯了@@" 04/24 12:07
※ 編輯: sweetjp6 來自: 140.117.164.148 (04/24 12:08)
3F:→ kuAIpAI:http://0rz.tw/9y2Nc 用這篇教的應該可以解決吧? 04/24 12:22
4F:→ sweetjp6:有想過用array_merge,但因為看到的例子都是屬於靜態,而 04/24 12:34
5F:→ sweetjp6:我的問題應該是屬於動態的,所以自己以為不適用。還是 04/24 12:36
6F:→ sweetjp6:ku大可以稍微指點一下呢? 04/24 12:36
7F:→ chrisQQ:你的 $j 每次都 = 0 04/24 12:41
8F:→ chrisQQ:疑,請忽略我,我沒看清楚- -" 04/24 12:42
9F:→ chrisQQ:動態一樣可以 array_merge 04/24 12:43
10F:→ sweetjp6:請教一下chris,動態怎麼merge呢?可否提供例子,感謝。 04/24 12:50
11F:→ sweetjp6:剛看了一下,array_merge似乎會把內容改為數字,但我陣列 04/24 12:51
12F:→ sweetjp6:的值事實上是字串,這樣應該不適用吧! 04/24 12:52
※ 編輯: sweetjp6 來自: 140.117.164.148 (04/24 12:54)
13F:推 kerash:你 $alldrama[0]['action'] 內容是DB抓出來的還是現有的? 04/24 12:53
14F:→ sweetjp6:從DB抓出來的 04/24 12:54
15F:推 kerash:你要不要 echo 看看 $alldrama[$i] 會是甚麼? 04/24 12:56
16F:→ kerash:另外 $alldrama[$i] 後面少個 . 連接 04/24 13:07
※ 編輯: sweetjp6 來自: 140.117.164.148 (04/24 13:12)
17F:→ sweetjp6:我有echo確定過$alldrama的內容,的確是我要的 04/24 13:13
18F:→ chrisQQ:不就是靜態怎麼 merge 動態就一樣嘛@@ 你取出的值就已經 04/24 13:17
19F:→ chrisQQ:變成靜態 array 了不是? 04/24 13:17
20F:→ kerash:下面的 $alldrama[0][action] 不是指 $mergeDt1[0] ? 04/24 13:19
21F:→ kerash:你的 alldrama 算是二維陣列,如下一篇回覆的一樣 04/24 13:20
22F:→ kerash:如果是 echo $alldrama[$i] 只會印 Array 才對 04/24 13:20
23F:→ kerash:另外 array merge 應該會保留原始的內容,就算是數字也可以 04/24 13:22
24F:→ kerash:轉成字串,應該不會不能滿足你的要求 04/24 13:22
25F:→ sweetjp6:對於array_merge會有這樣的認知是因為看到上面版友給的 04/24 13:26
26F:→ sweetjp6:連結中的一句話: 只能用在 Array 的 Merge, 若array與字 04/24 13:28
27F:→ sweetjp6:串相加,會出現Unsupported operand types的錯誤訊息。 04/24 13:28
28F:→ sweetjp6:但這應該是我誤解了。 04/24 13:29
29F:推 kerash:噢,這個在 array_merge有提到(之前我也有被版友提醒) 04/24 13:29
30F:→ kerash:因為 array_merge 不會判斷類型,所以建議之前先(array)轉 04/24 13:29
31F:推 PretenderY:先不論array_merge,你的第二個迴圈真的很有問題 04/24 13:37
32F:→ PretenderY:因為你用$mergeDtl[],外部跑第二次取到的值會塞在後面 04/24 13:38
33F:推 kerash:另外如果 mergeDtl 不用來保留,那就可以不用用陣列 04/24 13:38
34F:→ kerash:直接 assign 就好 04/24 13:38
35F:→ PretenderY:但是你的$j卻是從0開始,導致跑第二次的時候, 04/24 13:39
36F:→ PretenderY:加進$action的值會從$mergeDtl的開頭開始取值 04/24 13:39
$mergeDtl[]的確是用來作保留的。我希望每次外部取到的值都可以循序存下去。 Pre大說的應該是就是我的盲點了。 如果我希望可以不要每次都從$mergeDtl[]開頭取值,應該怎麼修正比較好呢? ※ 編輯: sweetjp6 來自: 140.117.164.148 (04/24 13:43)
37F:→ gname:我的壞習慣是在第二個迴圈外丟個計數變數..= =" 04/24 13:47
38F:推 kerash:我的保留是指在這個程序完畢後還會不會用到 mergeDtl 04/24 13:49
39F:→ PretenderY:板主說的正是我想講的,但非必要我自己是不會這樣寫 04/24 13:49
40F:→ kerash:如果不用的話可以不必存陣列,存了只是比較麻煩 04/24 13:50
41F:→ sweetjp6:在第二次的for迴圈之後,的確不會再用到mergeDrl。所以我 04/24 13:52
42F:→ sweetjp6:可以直接用assign就達到我要的效果嗎? 04/24 13:52
43F:推 kerash:不能解決這個問題,但至少你不用去考慮陣列位置的問題 04/24 13:53
44F:→ kerash:不過這也是目前最大的問題就是了 囧~ 04/24 13:54
45F:→ sweetjp6:我大概知道問題在哪了,先來試試看。感謝大家的熱心指點 04/24 13:56







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP