1

我有一个二维数组

$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 个其他循环!

4

1 回答 1

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';
}
?>

如您所见,您应该对 foreach 使用 $key => $value 表示法。

于 2012-11-18T15:36:55.377 回答