Heim >Backend-Entwicklung >PHP-Tutorial >foreach 遍历为什么会报错

foreach 遍历为什么会报错

WBOY
WBOYOriginal
2016-06-13 12:25:231921Durchsuche

foreach 遍历为什么会出错?
看到网友的帖子,自己试了试,果然如化所说,但不知为什么。请高手指教。
$blog=array( 
array( 
"titledata"=>"titleMM", 
"bodydata"=>"bodyMM" 
), 
array( 
"titledata"=>"titleGG", 
"bodydata"=>"bodyGG" 

); 
//出错 
foreach($blog as $b) 

$b['titledata']="BB"; 
$b['bodydata']="CC"; 

print_r($blog); //显示Array ( [0] => Array ( [titledata] => titleMM [bodydata] => bodyMM ) [1] => Array ( [titledata] => titleGG [bodydata] => bodyGG ) ),得不到预期的结果。
//正确 
for($i=0;$i
$blog[$i]['titledata']="title"; 
$blog[$i]['bodydata']="body"; 

print_r($blog);//得到预期的结果:Array ( [0] => Array ( [titledata] => title [bodydata] => body ) [1] => Array ( [titledata] => title [bodydata] => body ) )
?> 
------解决思路----------------------

$blog=array( <br />  array( <br />    "titledata"=>"titleMM", <br />    "bodydata"=>"bodyMM" <br />  ), <br />  array( <br />    "titledata"=>"titleGG", <br />    "bodydata"=>"bodyGG" <br />  ) <br />); <br /><br />foreach($blog as &$b) <br />{ <br />  $b['titledata']="BB"; <br />  $b['bodydata']="CC"; <br />} <br />print_r($blog);
Array<br />(<br />    [0] => Array<br />        (<br />            [titledata] => BB<br />            [bodydata] => CC<br />        )<br /><br />    [1] => Array<br />        (<br />            [titledata] => BB<br />            [bodydata] => CC<br />        )<br /><br />)<br /><br />
原因很简单,foreach($blog as $b) 得到的是副本,你在副本上改写,不会影响到正本

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:php?抛错误Nächster Artikel:草根码农写的论坛,该如何处理