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);
复制代码
相关推荐
夜雪一千12 分钟前
Python 如何实现 SHA 加密?SHA1 / SHA256 / SHA512 实战教程
开发语言·python
有点。35 分钟前
C++二叉树(一)
开发语言·数据结构·c++
民乐团扒谱机42 分钟前
【微实验】谐波乘积谱(HPS)算法深度解析:原理、数学与代码实现
开发语言·人工智能·python·算法·语音识别·音乐
报错小能手1 小时前
Go 语言结构 基础语法
开发语言·后端·golang
Lazionr1 小时前
stack与queue:底层实现与容器适配器
开发语言·数据结构·c++
剩下了什么1 小时前
go语言 Ctx:「错误三:在 Context 中存储可变值」
开发语言·后端·golang
Hello_Damon_Nikola1 小时前
CH573从入门到精通
c语言·开发语言·单片机·嵌入式硬件
Logintern091 小时前
Langgraph使用MemorySaver建立有记忆的图
开发语言·windows·python
豆沙沙包?2 小时前
C++~~~vector容器(p31-P40)
开发语言·c++
北漂燕郊杨哥2 小时前
phpStudy 手工安装最新稳定版 PHP 8.5.9(NTS)方法(Windows 本地开发)
windows·php·phpstudy