将相同的数组键合并为一个,并将值分隔为数组

时间:2016-09-08 14:21:13

标签: php arrays

我有两个像这样的数组

第一

Array
(
    [0] => Test
    [1] => Test2
    [2] => Test2
    [3] => Test
)

第二

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

我试图用分开的逗号或像这样的数组把它们粘在一起

Array
(
    [0] => Array
        (
            [Test] => A, B
        )

    [1] => Array
        (
            [Test2] => A, B
        )
)

1 个答案:

答案 0 :(得分:1)

我相信这是您正在寻找的解决方案。

$first = array(
    '0' => 'Test',
    '1' => 'Test2',
    '2' => 'Test2',
    '3' => 'Test'
);

$second = array(
    '0' => 'A',
    '1' => 'A',
    '2' => 'B',
    '3' => 'B'
);

$unique_second = array_unique( $second );
$result = array();

foreach ( array_unique( $first ) as $unique_value_from_first ) {
    $result[ $unique_value_from_first ] = $unique_second;
}

print_r( $result );

这将导致:

Array
(
    [Test] => Array
        (
            [0] => A
            [2] => B
        )
    [Test2] => Array
        (
            [0] => A
            [2] => B
        )
)

我测试了这个:http://www.tehplayground.com/#6xJEuK10J

我不明白需要这样做,考虑$unique_second数组不会改变,但玩得开心。

另外,为了将来参考,你的答案已经被低估了,因为你要求代码逻辑帮助,这是不赞成的。请赶上你的阅读:http://php.net/manual/en/ref.array.php