在PHP中依据键值将一维数组转换为二维数组的方法详解
秀秀 发布于 2024-6-20 10:35 23 次阅读
在PHP中,将一维数组转换为二维数组,并根据某个相同的键值进行分组,可以通过遍历一维数组并按该键值构建二维数组。下面是一个示例代码,展示了如何实现这个转换:
<?php
// 示例一维数组
$inputArray = [
['id' => 1, 'category' => 'A', 'value' => 10],
['id' => 2, 'category' => 'B', 'value' => 20],
['id' => 3, 'category' => 'A', 'value' => 30],
['id' => 4, 'category' => 'B', 'value' => 40],
['id' => 5, 'category' => 'C', 'value' => 50],
];
// 初始化二维数组
$outputArray = [];
// 遍历输入数组,并按'category'键进行分组
foreach ($inputArray as $item) {
$key = $item['category'];
// 检查该键值是否已存在于输出数组中
if (!isset($outputArray[$key])) {
$outputArray[$key] = [];
}
// 将当前项添加到相应的组中
$outputArray[$key][] = $item;
}
// 打印结果
print_r($outputArray);
?>
上面的代码会输出:
Array
(
[A] => Array
(
[0] => Array
(
[id] => 1
[category] => A
[value] => 10
)
[1] => Array
(
[id] => 3
[category] => A
[value] => 30
)
)
[B] => Array
(
[0] => Array
(
[id] => 2
[category] => B
[value] => 20
)
[1] => Array
(
[id] => 4
[category] => B
[value] => 40
)
)
[C] => Array
(
[0] => Array
(
[id] => 5
[category] => C
[value] => 50
)
)
)
在这个示例中,我们通过遍历一维数组,根据每个元素的category
键进行分组,构建了一个二维数组$outputArray
。每个category
键对应一个数组,包含了所有具有该键值的一维数组元素。
这种方法可以根据任何键值对数组进行分组,只需将$key = $item['category'];
改为您想要分组的键即可。