php - 修改值时,array_walk 未按预期工作
问题描述
我正在尝试向数组添加一个新值(我知道这是可能的,array_map()
但我想用 来测试它array_walk()
)。
这是代码:
$array = [
[
'id' => 1,
'name' => 'Jesus',
],
[
'id' => 2,
'name' => 'David',
],
];
我想要这个输出:
$array = [
[
'id' => 1,
'name' => 'Jesus',
'locked' => 0,
],
[
'id' => 2,
'name' => 'David',
'locked' => 0,
],
];
我尝试使用以下代码:
array_walk($array, static function(array $item): array {
$item += ['locked' => 0];
//var_dump($item); // Here the array has the three values.
return $item;
});
// Also I tried the same code but not returning the array, I mean:
array_walk($array, static function(array $item): void {
$item += ['locked' => 0];
//var_dump($item); // Here the array has the three values.
});
有可能我想要的array_walk()
吗?
这将是一个解决方案array_map()
。
$arrayMapped = array_map(static function(array $item): array {
return $item += ['locked' => 0];
}, $array);
var_dump($arrayMapped);
干杯!
解决方案
数组是按值传递的。您需要通过引用使用来定义参数&
array_walk($array, function(array &$item): void {
$item['locked'] = 0;
});
推荐阅读
- npm - 在 npm 包中导出依赖项
- css - 离子 5 电容器 Qr 代码相机视图未显示
- scala - 进行 sbt clean 组装时 sbt clean 组装出错
- c++ - 获取特定频率的持续时间
- impala - impala 4.0 中的配置
- r - 在带有胶水包的 gtsummary 中使用“modify_caption”时在表输出中显示变量名称
- c# - 启动或类中的选项验证
- geometry - 如何构造与一到三个线段相切并经过一到两个点的圆?
- amazon-web-services - 将文件从 EC2 Windows 实例传输到本地 Mac
- excel - 如何在EXCEL VBA中将内容从评论提取到单元格?