作者sweetjp6 (水饺)
看板PHP
标题Re: [请益] 请教阵列存取的问题
时间Tue Apr 24 13:22:06 2012
※ 引述《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