php - 如何将多个数组元素添加到转置结构中?
问题描述
我有这些数组
$months = ['jan', 'feb'];
$cashUniform = [2000, 1200];
$cashFee = [24000, 34000];
$cashExpenses = [4000, 300];
我试图从这些数组中创建一个对象,如下所示:
$data = [{
'month': 'jan',
'cashUniform': 2000,
'cashFee': 24000,
'cashExpenses': 4000,
},
{
'month': 'feb',
'cashUniform': 12000,
'cashFee': 34000,
'cashExpenses': 300,
}
];
我试过 array_combine 但它只接受两个数组元素,就我而言,我有四个数组元素。
我也尝试过创建一个多重数组。
$data['months'] = $months;
$data['cashFee'] = $cashFee;
$data['cashUniform'] = $cashUniform;
$data['cashExpenses'] = $cashExpenses;
dd(json_encode($data));
上面的代码返回
{"months":["JAN","FEB"],"cashFee": [12500,2000],"cashUniform":[2000,0],"cashExpenses":[1500,0]}
解决方案
您可以使用简单的 for 循环遍历所有数组并将值添加到单个数组中:
$data = [];
for ($i = 0; $i < count($months); $i++) {
$data[] = [
'month' => $monts[$i],
'cashUniform' => $cashUniform[$i],
'cashFee' => $cashFee[$i],
'cashExpenses' => $cashExpenses[$i],
];
}
dd($data);
这确实要求所有数组具有相同数量的值!
推荐阅读
- javascript - 如何将列表元素分别添加到 2 个列表中?
- java - 尝试更新外键时出现异常
- python-3.x - M1 MacBook Apple ML 计算 Tensorflow2.4 与 Numpy 的兼容性问题
- github - 如何正确设置 Github App 提交者以显示应用创建了提交?
- sql - sql server中的group_concat,但连接值列不在group by
- java - java中的参数化查询
- python - 如何将函数应用于列表中的每三个集合?
- python - OSError: [WinError 87] 参数不正确
- flutter - Flutter 视频播放器检索视频的宽度和高度
- quarkus - Quarkus 仅传输数据字段上的 SSE 有效负载反应?