2016-07-16 10 views
1

2つの配列を結合し、重複する文字列の対応する値を追加したいとします。文字列配列と整数配列をマージして、文字列配列に重複の対応する値を追加する方法

私のコードは次のとおりです。

$ids='f5522a8cc736750fffe1a9b7aa72c7bf','f5522a8cc736750fffe1a9b7aa72c7bf','26ba78d98033416372c3314c784f7aac','26ba78d98033416372c3314c784f7aac','6e983831ac2a73469abb7f94bdb8887f','6e983831ac2a73469abb7f94bdb8887f','c6c5c00f7266ff3ca584662a0bc48bd3','c6c5c00f7266ff3ca584662a0bc48bd3'; $ids2 ='1','8','1','4','6','1','3','1'; $ids = explode(',',$ids); $ids2 = explode(',',$ids2); $a = $ids; $b = $ids2; $c = array_combine($a, $b); print_r($c);

私は何を取得することです:

Array (['f5522a8cc736750fffe1a9b7aa72c7bf'] => '8' ['26ba78d98033416372c3314c784f7aac'] => '4' ['6e983831ac2a73469abb7f94bdb8887f'] => '1' ['c6c5c00f7266ff3ca584662a0bc48bd3'] => '1')

私が欲しいのです:あなたはこのコードを使用することができます

Array (['f5522a8cc736750fffe1a9b7aa72c7bf'] => '9' ['26ba78d98033416372c3314c784f7aac'] => '5' ['6e983831ac2a73469abb7f94bdb8887f'] => '7' ['c6c5c00f7266ff3ca584662a0bc48bd3'] => '4')

答えて

0

カウントのための配列$ bのすべての値を保つことは、あなたが得る

Array ( 
    [f5522a8cc736750fffe1a9b7aa72c7bf] => Array ([0] => 1 [1] => 8) 
    [26ba78d98033416372c3314c784f7aac] => Array ([0] => 1 [1] => 4) 
    [6e983831ac2a73469abb7f94bdb8887f] => Array ([0] => 6 [1] => 1) 
    [c6c5c00f7266ff3ca584662a0bc48bd3] => Array ([0] => 3 [1] => 1)) 

を発生します

function array_combine_($keys, $values) 
{ 
    $result = array(); 
    foreach ($keys as $i => $k) { 
     $result[$k][] = $values[$i]; 
    } 
    array_walk($result, create_function('&$v', '$v = (count($v) == 1)? array_pop($v): $v;')); 
    return $result; 
} 
$ids='f5522a8cc736750fffe1a9b7aa72c7bf,f5522a8cc736750fffe1a9b7aa72c7bf,26ba78d98033416372c3314c784f7aac,26ba78d98033416372c3314c784f7aac,6e983831ac2a73469abb7f94bdb8887f,6e983831ac2a73469abb7f94bdb8887f,c6c5c00f7266ff3ca584662a0bc48bd3,c6c5c00f7266ff3ca584662a0bc48bd3'; 

$ids2 ='1,8,1,4,6,1,3,1'; 

$ids = explode(',',$ids); $ids2 = explode(',',$ids2); 

$a = $ids; $b = $ids2; 
print_r(array_combine_($a, $b)); 

をXD更新: 使用このコードは、最終的な配列を取得するための

$result = array_combine_($a, $b); 
$new_result = array(); 
foreach ($result as $key => $value) { 
    $new_result[$key] = array_sum($value); 
} 
print_r($new_result); 

もらえます。

Array ( 
[f5522a8cc736750fffe1a9b7aa72c7bf] => 9 
[26ba78d98033416372c3314c784f7aac] => 5 
[6e983831ac2a73469abb7f94bdb8887f] => 7 
[c6c5c00f7266ff3ca584662a0bc48bd3] => 4) 

こんにちは!

+0

おかげでたくさん、しかし、どのように私は配列を取得した値を追加するには、ここから進むことができます([ 'f5522a8cc736750fffe1a9b7aa72c7bf'] => '9' [ '26ba78d98033416372c3314c784f7aac'] => '5' [ '6e983831ac2a73469abb7f94bdb8887f'] => ' 7 '[' c6c5c00f7266ff3ca584662a0bc48bd3 '] =>' 4 ') –

+0

私は自分の答えを更新しました。申し訳ありませんが、私は更新せずに処理できると思います。 –

+0

うわー、あなたは完璧に働く最高の人です! –

関連する問題