我创建了一个导入脚本,将包含车辆品牌和型号的电子表格转换为相关的数据库实体。我的电子表格中的源数组如下所示(每个都是电子表格行):
$rows = [
['Brand A', 'Model A'],
['Brand A', 'Model A'],
['Brand A', 'Model B'],
['Brand A', 'Model B'],
['Brand A', 'Model B'],
['Brand A', 'Model C'],
['Brand B', 'Model A'],
['Brand B', 'Model B'],
['Brand B', 'Model B'],
['Brand B', 'Model B'],
['Brand B', 'Model C'],
['Brand B', 'Model C'],
];
我想要这种格式的数据:
$data = [
'Brand A' => [
'Model A',
'Model A',
'Model B',
'Model B',
'Model B',
'Model C',
],
'Brand B' => [
'Model A',
'Model B',
'Model B',
'Model B',
'Model C',
'Model C',
],
];
我有一个使用 foreach 循环的工作示例:
$data = [];
foreach ($rows as $row) {
$data[strval($row[0])][] => strval($row[1]);
}
如果可能的话,我想使用其中一个 PHParray函数。我尝试了以下方法,但它没有创建品牌名称索引:
$data = array_map(function ($row) {
return $data[strval($row[0])][] = strval($row[1]);
}, $rows);
数组最终如下:
$data = [
'Model A',
'Model A',
...
];
这是可能的还是我浪费我的时间/过度设计这个?
PT 2:同时为品牌打造独一无二的模型的奖励积分。
$data = [
'Brand A' => [
'Model A',
'Model B',
'Model C',
],
'Brand B' => [
'Model A',
'Model B',
'Model C',
],
];