0

私は2つの配列を持っています、

$arr_1 = array(01=>5, 02=>3, 03=>2); $arr_2 = array(01=>3, 02=>4, 03=>0);

私が達成したいのは、2 つの配列を追加した後の最終的な形式が 1 つの配列になるようにすることです。

$arr_3 = array(01=>8, 02=>7, 03=>2);

試してみarray_mergeましたが、解決しませんでした。どうすれば最終的なフォームに到達できますか?

4

4 に答える 4

3

array_mapを試してください。PHPマニュアルより

array_map() は、それぞれにコールバック関数を適用した後、arr1 のすべての要素を含む配列を返します。コールバック関数が受け入れるパラメーターの数は、array_map() に渡される配列の数と一致する必要があります。

$arr_1 = array(01=>5, 02=>3, 03=>2); 
$arr_2 = array(01=>3, 02=>4, 03=>0);

$arr_3 = array_map('add', $arr_1, $arr_2);

function add($ar1, $ar2){
    return $ar1+$ar2;
}

print_r($arr_3);

出力:

Array ( [0] => 8 [1] => 7 [2] => 2 ) 
于 2013-06-24T15:28:09.090 に答える
0

位置ではなくキーで一致する要素を追加する必要がある場合は、これを試すことができます。

$array1 = array(1=>5, 2=>3, 3=>2); 
$array2 = array(3=>3, 2=>4, 1=>0); //unsorted array

$keys_matched = array_intersect_key ( $array1 , $array2);
foreach ($keys_matched as $key => $value) {
   $result[$key] = $array1[$key] + $array2[$key];
}
print_r($result); //Displays: Array ( [1] => 5 [2] => 7 [3] => 5 
于 2013-06-24T15:47:03.633 に答える