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 に答える