[請益] foreach取陣列資料問題

看板PHP作者 (Escape)時間19年前 (2006/06/28 17:34), 編輯推噓3(306)
留言9則, 3人參與, 最新討論串1/1
剛寫了一個程式,有問題的片段如下 while(!feof($fp)){ $data = fgets($fp) ; $newdata = split(";",$data) ; echo "<tr>" ; foreach($newdata as $key => $value){ $value = mysql_escape_string($value); if($key == '2' or $key == '4' or $key == '8' or $key == '10' or $key =='11' or $key == '18'){ continue ; }elseif($key =='6'){ $newdata[19] = "$newdata[6]" ; continue ; }elseif($key == '19'){ echo $newdata[$key] ; } echo "<td>$value</td>" ; } echo "</tr>" ; } 上述在 $key == 6 時將 $value 存入陣列 $newdata[19] 的位置 但在判斷 $key == 19 時,用 echo $value 是沒有東西的 一定要用 echo $newdata[19] 才有東西 不知道我的問題出在那呢?煩請指正,感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.20.8.51

06/28 17:52, , 1F
你在迴圈跑完之後print_r整個陣列 就知道問題在哪嚕
06/28 17:52, 1F

06/28 20:54, , 2F
沒道理你回答路人都比較有禮貌阿...(/‵Д′)/~ ╧╧
06/28 20:54, 2F

06/28 20:57, , 3F
= =
06/28 20:57, 3F

06/29 08:57, , 4F
把 print_r 放到 foreach 結尾處,可以看到每次key,value
06/29 08:57, 4F

06/29 08:58, , 5F
的變化,在key=6時,的確看到了newdata[19]的值被改變了
06/29 08:58, 5F

06/29 08:58, , 6F
一直到foreach整行結束,newdata[19]的值還是我給定的
06/29 08:58, 6F

06/29 08:59, , 7F
newdata[6]的值,但到key=19時,value出來還是沒東西 ToT
06/29 08:59, 7F

06/29 09:14, , 8F
唔,剛在想是不是foreach自己存一份$newdata,用自己這份
06/29 09:14, 8F

06/29 09:15, , 9F
在做key,value動作。果然,改用參考的方式就 ok ...Orz
06/29 09:15, 9F
文章代碼(AID): #14eaqhdz (PHP)
文章代碼(AID): #14eaqhdz (PHP)