检查重复数组php并组合重复条目

时间:2014-05-09 07:50:29

标签: php arrays

我的阵列:

Array
(
    [0] => ABC A
    [1] => ABC B
    [2] => Array
        (
            [0] => DEF
            [1] => ABC A
        )

    [3] => Array
        (
            [0] => DEF
            [1] => ABC B
        )

    [4] => Array
        (
            [0] => GHI
            [1] => ABC A
        )

    [5] => Array
        (
            [0] => GHI
            [1] => ABC B
        )

)

我的目标是创建一个这样的数组:

Array
(
    [0] => ABC A
    [1] => ABC B
    [2] => Array
        (
            [0] => DEF
            [1] => ABC A
            [2] => ABC B
        )

    [3] => Array
        (
            [0] => GHI
            [1] => ABC A
            [2] => ABC B
        )

)

我不知道如何解决这个问题。

1 个答案:

答案 0 :(得分:3)

你可以使用普通的'关于这一个。考虑这个例子:

$values = array(
    'ABC A',
    'ABC B',
    array('DEF', 'ABC A'),
    array('DEF', 'ABC B'),
    array('GHI', 'ABC A'),
    array('GHI', 'ABC B'),
);

$new_values = array();
foreach($values as $key => $value) {
    if(is_array($value)) {
        $new_values[$value[0]][0] = $value[0];
        $new_values[$value[0]][] = $value[1];
    } else {
        $new_values[] = $value;
    }
}

$new_values = array_values($new_values); // reindex

print_r($new_values);

示例输出:

Array
(
    [0] => ABC A
    [1] => ABC B
    [2] => Array
    (
        [0] => DEF
        [1] => ABC A
        [2] => ABC B
    )

    [3] => Array
    (
        [0] => GHI
        [1] => ABC A
        [2] => ABC B
    )

)