php - 在 foreach 循环中为二维数组赋值

标签 php arrays loops

我有一个二维数组

$arr = array (
array('x'=>'x1' , 'y'=>'') ,
array('x'=>'x2' , 'y'=>'') 
);

如您所见,y 列为空

如果我想赋予它一些值(value),这是行不通的

foreach($arr as $a )
{
  if($a['x'] == 'x1')
   $a['y'] = 'y1';

  if($a['x'] == 'x2')
   $a['y'] = 'y2';
}

我知道我可以使用 2 个 for 循环,但我想知道是否有像 foreach 这样更干净/更简单的方法来做到这一点?我的应用程序已经使用 froeach 循环来检查数组中的某些列,它已经够困惑了,我不需要另外 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 表示法。

关于php - 在 foreach 循环中为二维数组赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13441543/

相关文章:

arrays - Swift:递归循环遍历所有 subview 以查找特定类并附加到数组

php - 层次结构/树数据 - 寻找起源

javascript - 随机数,随机颜色循环

php - magento2设置: no CSS

php - 如何去除特殊字符?

php - 在 MySQL 中搜索返回的记录

php - php 中的 Javascript 无法正常工作

java - 遍历二维数组

java - 他们是否有任何简化的 Java 来查找 0000 到 9999 之间的回文日期?

c - If 语句不断循环 - c