首页 > 解决方案 > 将数据推送到存储在另一个数组中的数组中

问题描述

如何向另一个数组包含的数组添加值?

在下面的示例代码中,我试图将字符串“黄色”添加到存储的两个数组中$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);
    }

    ?>

标签: phparrayslist

解决方案


在你的 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);
}

推荐阅读