gpt4 book ai didi

php使用foreach将值插入数组数组

转载 作者:IT王子 更新时间:2023-10-29 00:03:50 26 4
gpt4 key购买 nike

我有一个非常基本的问题,但我被卡住了。我是 php 的新手,我有一个这样的数组:

$array = array(
'one' => 1,
'two' => array('key1' => 'val1','key2' => 'val2'),
'three' => array('key1' => 'val1','key2' => 'val2'),
'four' => array('key1' => 'val1','key2' => 'val2')
);

对于数组中的每个数组(即“二”、“三”和“四”),我想将“key3”=>“val3”插入到这些数组中。

我试过这个:

foreach($array as $item) {
if (gettype($item) == "array") {
$item['key3'] = 'val3';
}
}

但它不起作用,我不确定为什么。到处使用各种 print_r,如果我在循环中打印出来,它似乎将 'key3' => 'val3' 插入到 $item 中,但原始数组似乎没有变化。我还尝试了一个常规的 for 循环,但也没有用。

最佳答案

foreach使用 $item 的副本,因此您不能修改 foreach 中的原始数组。解决此问题的一种方法是使用 & 运算符。

foreach($array as &$item) {
if (is_array($item)) {
$item['key3'] = 'val3';
}
}

另一种更优雅的方式是使用 array_walk() :

array_walk($array, function (&$v, $k) { 
if (is_array($v)) {
$v['key3'] = 'val3';
}
});

此示例适用于引入了闭包的 PHP 5.3。

关于php使用foreach将值插入数组数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16491704/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com