PHP如何批量修改二维数组中值

每个name值加pex,age加5, 原数据:

php 复制代码
$data=[
    ["name"=>'a','age'=>12],
    ["name"=>'b','age'=>22],
    ["name"=>'c','age'=>33],
    ["name"=>'d','age'=>44],
];

实现效果

方案一、foreach引用方式

php 复制代码
$data=[
    ["name"=>'a','age'=>12],
    ["name"=>'b','age'=>22],
    ["name"=>'c','age'=>33],
    ["name"=>'d','age'=>44],
];

foreach ($data as &$v){
    $v['name']="pex".$v['name'];
    $v['age']=$v['age']+5;
}
var_dump($data);

方案二、foreach通过key改变原数组值

php 复制代码
$data=[
    ["name"=>'a','age'=>12],
    ["name"=>'b','age'=>22],
    ["name"=>'c','age'=>33],
    ["name"=>'d','age'=>44],
];

foreach ($data as $k=>$v){
    $data[$k]['name']="pex".$v['name'];
    $data[$k]['age']=$v['age']+5;
}
var_dump($data);

方案三、使用传统的for循环修改数组元素:

php 复制代码
$data = [
    ["name" => 'a', 'age' => 12],
    ["name" => 'b', 'age' => 22],
    ["name" => 'c', 'age' => 33],
    ["name" => 'd', 'age' => 44],
];
for ($i = 0; $i < count($data); $i++) {
    $data[$i]['name'] = "pex" . $data[$i]['name'];
    $data[$i]['age'] = $data[$i]['age']+5;
}
var_dump($data);

方案四、使用 foreach 循环副本修改数组元素:

php 复制代码
$data = [
    ["name" => 'a', 'age' => 12],
    ["name" => 'b', 'age' => 22],
    ["name" => 'c', 'age' => 33],
    ["name" => 'd', 'age' => 44],
];
$newData = [];
foreach ($data as $item) {
    $item['name'] = "pex" . $item['name'];
    $item['age'] = $item['age']+5;
    $newData[] = $item;
}
var_dump($newData);

方案五、使用 array_map 函数修改数组元素:

php 复制代码
<?php

$data = [
    ["name" => 'a', 'age' => 12],
    ["name" => 'b', 'age' => 22],
    ["name" => 'c', 'age' => 33],
    ["name" => 'd', 'age' => 44],
];
$newData = array_map(function ($item) {
    $item['name'] = "pex" . $item['name'];
    $item['age'] =  $item['age']+5;
    return $item;
}, $data);
var_dump($newData);
复制代码
相关推荐
见叶之秋4 小时前
C++ 泛型世界的两块拼图:容器适配器与仿函数
java·开发语言
zhangrelay5 小时前
用ROS2Lyrical实验报告册思路重做蓝桥云课ROS1实验并改进
linux·笔记·学习·ubuntu·机器人
逗脑IDE5 小时前
零基础学ESP32:RFID无线射频卡——让ESP32拥有“刷卡“能力!
开发语言·网络·人工智能·python·esp32·硬件开发
小师兄吃牛肉5 小时前
C语言篇:内联函数
c语言·开发语言
yuniko-n5 小时前
【Java】字符串相关坑点
java·开发语言·python
jimy15 小时前
虚函数vtable,链接时看到构造函数,linker把符号地址写入vtable(三)
开发语言·c++
ss2735 小时前
AI全栈实战 | 3.3-02 Python 并发:有 GIL 为什么还用多线程,asyncio 和 JS 事件循环同源不同味
开发语言·javascript·python
菜鸟~noob2336 小时前
【电子战】第20篇:凸优化与对数障碍法【含matlab代码】
开发语言·matlab
LHR_friendship6 小时前
HCIP课程全部内容
网络·笔记·学习·hcip·华为ensp
Wang's Blog6 小时前
Java框架 SpringCloud 快速入门: 服务拆分案例 Demo
java·开发语言·spring cloud