php - 将数据推送到存储在另一个数组中的数组中
问题描述
如何向另一个数组包含的数组添加值?
在下面的示例代码中,我试图将字符串“黄色”添加到存储的两个数组中$arr
以形成[ [ 'blue',yellow'] , ['green','yellow'] ]
在第一个 foreach 循环中,黄色单词已成功推入包含的数组中,当我打印出数组 $key 时可以看到
当我要在最后的 foreach 循环中打印 $arr 时,我附加的黄色消失了
$arr = array(array("blue"),array("green"));
foreach ($arr as $key)
{
array_push($key,"yellow");
print_r($key);
}
foreach ($arr as $key)
{
print_r($key);
}
?>
解决方案
在你的 foreach 上使用参考像这样&$key来保存你的修改:
PHP 在 foreach 中复制变量,因此您的$key实际上与之前数组中的不同。
来自@达曼:
& 将数组的值作为引用传递,并且不创建变量的新实例。
所以就这样做:
$arr = array(array("blue"),array("green"));
foreach ($arr as &$value)
{
$value[]='yellow';
print_r($value);
}
foreach ($arr as $value)
{
print_r($value);
}
推荐阅读
- json - Openlayers & NPM:无法加载本地 .json 文件
- javascript - Angular Material Datepicker如何将月份标签从格式MMM设置为格式MMMM(长)
- php - 从 PHP MySql 访问 $http.post 请求中的 JSON 数据
- python - Sympy 中的 Steinhart-Hart 热敏电阻校准
- python - 如何将 Stellarium 生成的文件的二进制编码文件转换为 ASCII
- django - 将查询集转换为字符串
- java - 考虑到性能、反射或构造函数引用,哪个是实例化 java 类的更好方法?
- regex - 提取器正则表达式中的正则表达式问题 - JMeter
- mysql - 创建 BEFORE INSERT 触发器时出现模棱两可的错误
- r - 混合 S3 和 S4 时的方法调度