2

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

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 值数组,以便更容易地分解可能的值数组。感谢所有热心帮助的人。

4

2 回答 2

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
        )

)
于 2012-05-27T12:45:26.900 回答
1
$out = array();
foreach ($arr1 as $v) {
  $out[$v] .= (strlen($out[$v]) ? ',' : '').array_shift($arr2);
}

$out现在:

Array
(
  [a] => 1,2
  [b] => 3
)
于 2012-05-27T12:57:45.937 回答