作者gamewolf (Escape)
看板PHP
標題[請益] foreach取陣列資料問題
時間Wed Jun 28 17:42:00 2006
剛寫了一個程式,有問題的片段如下
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
1F:推 taiwancat:你在迴圈跑完之後print_r整個陣列 就知道問題在哪嚕 06/28 17:52
2F:推 linmic:沒道理你回答路人都比較有禮貌阿...(/‵Д′)/~ ╧╧ 06/28 20:54
3F:推 taiwancat:= = 06/28 20:57
4F:→ gamewolf:把 print_r 放到 foreach 結尾處,可以看到每次key,value 06/29 08:57
5F:→ gamewolf:的變化,在key=6時,的確看到了newdata[19]的值被改變了 06/29 08:58
6F:→ gamewolf:一直到foreach整行結束,newdata[19]的值還是我給定的 06/29 08:58
7F:→ gamewolf:newdata[6]的值,但到key=19時,value出來還是沒東西 ToT 06/29 08:59
8F:→ gamewolf:唔,剛在想是不是foreach自己存一份$newdata,用自己這份 06/29 09:14
9F:→ gamewolf:在做key,value動作。果然,改用參考的方式就 ok ...Orz 06/29 09:15