生命之风的低语
Whispers in the Wind of Life.

在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'];改为您想要分组的键即可。