如何在PHP中合并数组字段值?

时间:2012-12-03 04:53:41

标签: php arrays multidimensional-array

我的数组是这样的:

Array
(
    [0] => Array
        (
            [id] => 1
            [name] => a
            [hardware_type] => keybord
        )

    [1] => Array
        (
            [id] => 2
            [name] => b
            [hardware_type] => mouse
        )

    [2] => Array
        (
            [id] => 1
            [name] => a
            [hardware_type] => mouse
        )

    [3] => Array
        (
            [id] => 1
            [name] => a
            [hardware_type] => moniter
        )

    [4] => Array
        (
            [id] => 2
            [name] =>b
            [hardware_type] => keyboad
        )

)

需要这样的输出我只想合并硬件类型

Array(
    [0] => Array

        (
            [id] => 1
            [name] => a
            [hardware_type] => keybord, mouse, moniter
        )
[1] => Array
    (
            [id] => 1
            [name] => b
            [hardware_type] => keyboard, mouse
        )

 )

1 个答案:

答案 0 :(得分:0)

$array是您描述的输入数组,其中$newarray是您想要的输出数组,并假设id的每个值与您的name具有相同的$temp = array(); foreach ($array as $item) { $temp[$item['id']] = array('id' => $item['id'], 'name' => $item['name']); if (empty($newarray[$item['id']]['hardware_type'])) $temp[$item['id']]['hardware_type'] = $item['hardware_type']; else $temp[$item['id']]['hardware_type'] .= ', ' . $item['hardware_type']; } $newarray = array_values($temp); 示例输入:

hardware_type

如果您希望$temp = array(); foreach ($array as $item) { $temp[$item['id']] = array('id' => $item['id'], 'name' => $item['name']); $temp[$item['id']]['hardware_type'][] = $item['hardware_type']; } $newarray = array_values($temp); 是数组而不是以逗号分隔的字符串列表,请改为:

{{1}}