Php 将数据推送到另一个数组中存储的数组中
如何向另一个数组包含的数组添加值 在下面的示例代码中,我试图将字符串“yellow”添加到Php 将数据推送到另一个数组中存储的数组中,php,arrays,list,Php,Arrays,List,如何向另一个数组包含的数组添加值 在下面的示例代码中,我试图将字符串“yellow”添加到$arr存储的两个数组中,以形成[['blue',yellow'],['green','yellow']] 在第一个foreach循环中,单词yellow被成功地推送到包含的数组中,但是当我打印数组$key时可以看到该数组 当我在最后一个foreach循环中打印$arr时,我附加的黄色不见了 $arr = array(array("blue"),array("green")); fore
$arr
存储的两个数组中,以形成[['blue',yellow'],['green','yellow']]
在第一个foreach循环中,单词yellow被成功地推送到包含的数组中,但是当我打印数组$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上的参考,如so和$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);
}
这里没有关键的方法
$arr = [["blue"], ["green"]];
foreach ($arr as &$value)
$value[]='yellow';
print_r($arr);
以下是关键方法
$arr = [["blue"], ["green"]];
foreach ($arr as $key=>$value)
$arr[$key][]='yellow';
print_r($arr);
下面是另一种使用
这是同样的事情
所有示例的输出
Array
(
[0] => Array
(
[0] => blue
[1] => yellow
)
[1] => Array
(
[0] => green
[1] => yellow
)
)
最后是一些性能测试和您也可以使用array\u map进行测试。例如,请参见下面的代码
$a = [["blue"],["green"]];
$b = array_map(function($n) {
$n[] = "Yellow";
return $n;
}, $a);
print_r($b);
希望这有帮助。
foreach($arr as&$key)
是的。编辑了我的答案。
Array
(
[0] => Array
(
[0] => blue
[1] => yellow
)
[1] => Array
(
[0] => green
[1] => yellow
)
)
$a = [["blue"],["green"]];
$b = array_map(function($n) {
$n[] = "Yellow";
return $n;
}, $a);
print_r($b);