我有一个二维数组
$arr = array (
array('x'=>'x1' , 'y'=>'') ,
array('x'=>'x2' , 'y'=>'')
);
你可以看到y列是空的
如果我想给它增加一些价值,那就不行了
foreach($arr as $a )
{
if($a['x'] == 'x1')
$a['y'] = 'y1';
if($a['x'] == 'x2')
$a['y'] = 'y2';
}
我知道我可以使用2个for
循环,但我想知道是否有像foreach这样更清洁/更简单的方法吗?我的应用程序已经使用froeach循环来检查数组中的一些列,它已经很麻烦我已经不需要2个其他循环了!
答案 0 :(得分:2)
问题是您使用的是数组值而不是键。以下代码将执行此操作:
<?php
$arr = array (
array('x'=>'x1' , 'y'=>'') ,
array('x'=>'x2' , 'y'=>'')
);
foreach($arr as $key => $value )
{
if($arr[$key]['x'] == 'x1')
$arr[$key]['y'] = 'y1';
if($arr[$key]['x'] == 'x2')
$arr[$key]['y'] = 'y2';
}
?>
如您所见,您应该使用$ key =&gt; foreach的$ value表示法。