You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP数组拼接:如何将固定变量值设为子数组首元素,其余为动态数据

解决PHP二维数组中给每个子数组添加固定首元素的问题

嘿,这个需求我之前做项目的时候也碰到过,其实有好几种简单的实现方式,我给你梳理一下:

方法一:用array_map()快速处理已有动态数据

如果你的动态子数据已经是一个二维数组了(比如每个子数组只缺开头的固定值),用array_map()可以一行搞定,代码简洁还不修改原数据:

$my_str = "TEST";
// 假设这是你已有的动态数据集合
$dynamic_data = [[22, 18], [15, 13], [5, 2], [17, 15]];

// 用array_map遍历每个子数组,把固定值拼到开头
$my_arr = array_map(function($item) use ($my_str) {
    return array_merge([$my_str], $item);
}, $dynamic_data);

// 输出结果
print_r($my_arr);

方法二:循环生成时直接构造子数组

如果你的动态数据是逐个获取的(比如从数据库查询结果、API返回数据里循环读取),那在循环里直接把固定值作为第一个元素构造子数组就最直观了:

$my_str = "TEST";
$my_arr = [];

// 模拟动态数据来源,比如数据库查询的结果集
$dynamic_items = [
    ['num1' => 22, 'num2' => 18],
    ['num1' => 15, 'num2' => 13],
    ['num1' => 5, 'num2' => 2],
    ['num1' => 17, 'num2' => 15]
];

foreach ($dynamic_items as $item) {
    // 直接把固定值放在第一个位置,后面跟动态数据
    $my_arr[] = [$my_str, $item['num1'], $item['num2']];
}

print_r($my_arr);

方法三:用array_unshift()修改子数组

如果你习惯用数组操作函数,也可以用array_unshift()给每个子数组添加首元素,不过要注意这个函数会直接修改原数组,所以最好先复制再操作:

$my_str = "TEST";
$dynamic_data = [[22, 18], [15, 13], [5, 2], [17, 15]];
$my_arr = [];

foreach ($dynamic_data as $item) {
    // 复制原数组避免修改原始数据
    $temp_item = $item;
    array_unshift($temp_item, $my_str);
    $my_arr[] = $temp_item;
}

print_r($my_arr);

这三种方法都能得到你想要的二维数组,你可以根据自己的实际场景选择:已有现成动态数组选方法一,循环生成数据选方法二,喜欢用数组操作函数就选方法三~

内容的提问来源于stack exchange,提问作者Nadhiful - Kun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 21:02:53