作者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