如何将值合并到类似的键中

时间:2012-05-27 12:41:11

标签: php

我正在寻找一个函数,如果有的话,将值保存或合并到类似的键中,但到目前为止还没有运气。

array_combine只是删除了值:

array_combine(array('a','a','b'), array(1,2,3));

返回:

Array
(
    [a] => 2
    [b] => 3
)

预期:

Array
(
    [a] => 1,2
    [b] => 3
)

非常感谢任何提示。

由于

更新:我不知道,并没有更清楚地表达合并的值(1,2),但后来我最好接受Jeroen值的数组,以便更容易地对可能的数组值进行细分。 感谢所有帮助过的人。

2 个答案:

答案 0 :(得分:3)

此:

function array_combine_custom($arr1, $arr2) {
    $out = array();

    $arr1 = array_values($arr1);
    $arr2 = array_values($arr2);

    foreach($arr1 as $key1 => $value1) {
        $out[(string)$value1] [] = $arr2[$key1];
    }

    return $out;
}

返回:

Array
(
    [a] => Array
        (
            [0] => 1
            [1] => 2
        )

    [b] => Array
        (
            [0] => 3
        )

)

答案 1 :(得分:1)

$out = array();
foreach ($arr1 as $v) {
  $out[$v] .= (strlen($out[$v]) ? ',' : '').array_shift($arr2);
}

$out现在:

Array
(
  [a] => 1,2
  [b] => 3
)