2017-03-24 11 views
-2

私が持っている。このような2列配列の値がカウント2つの配列を結合し、追加

$arr1 = array('Prabhash', 'Nagda', 'Sayyed','Prabhash'); 
$arr2 = array('4', '1', '2','5'); 
echo "<pre>"; 
print_r($arr1); 
print_r($arr2); 

そして、私はこのような出力が

Array 
(
[0] => Array 
    (
     [0] =>Prabhash 
     [1] =>9 
    ) 
[1] => => Array 
    (
     [0] =>Nagda 
     [1] =>1 
    ) 
[2] => => Array 
    (
     [0] =>Sayyed 
     [1] =>2 
    ) 

) 

私が結合し、配列ではなく、成功をマージしようとしていたいです、誰かがこれをより良く助けてくれることを願っています。

+1

使用配列は、それが私のために –

答えて

2

PHP code demo

<?php 
$arr1 = array('Prabhash', 'Nagda', 'Sayyed','Prabhash'); 
$arr2 = array('4', '1', '2','5'); 
$result=array(); 
foreach($arr1 as $key => $value) 
{ 
    if(isset($result[$value])) 
    { 
     $result[$value][1]+=$arr2[$key]; 
    } 
    else 
    { 
     $result[$value]=array($value,$arr2[$key]); 
    } 
} 
$result= array_values($result); 
print_r($result); 

出力:

Array 
(
    [0] => Array 
     (
      [0] => Prabhash 
      [1] => 9 
     ) 

    [1] => Array 
     (
      [0] => Nagda 
      [1] => 1 
     ) 

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

) 
+0

感謝をマージ... :) – Prabhash

+0

@Prabhash歓迎の仕事 –

0

それを試してみてください。

<?php  
$arr1 = array('Prabhash', 'Nagda', 'Sayyed','Prabhash'); 
$arr2 = array('4', '1', '2','5'); 
$newArray = array(); 

foreach($arr1 as $key => $value) { 
    $newArray[$value][0] =$value; 
    if(!isset($newArray[$value][1]) || $newArray[$value][1] == null) 
     $newArray[$value][1] = $arr2[$key]; 
    else 
     $newArray[$value][1] = $newArray[$value][1]+$arr2[$key]; 
} 
$newArray = array_values($newArray); 

echo "<pre>"; 
print_r($newArray); 
?> 

OUTPUT:array_maparray_keysarray_fliparray_uniquearray_intersect_keyarray_sum関数を使用して

Array 
(
    [0] => Array 
     (
      [0] => Prabhash 
      [1] => 9 
     ) 

    [1] => Array 
     (
      [0] => Nagda 
      [1] => 1 
     ) 

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

) 
1

ショート溶液:

$arr1 = array('Prabhash', 'Nagda', 'Sayyed','Prabhash'); 
$arr2 = array('4', '1', '2','5'); 

$result = array_map(function($n) use($arr1, $arr2){ 
    $sum = array_sum(array_intersect_key($arr2, array_flip(array_keys($arr1, $n)))); 
    return [$n, $sum]; 
}, array_unique($arr1)); 

print_r($result); 

出力:

Array 
(
    [0] => Array 
     (
      [0] => Prabhash 
      [1] => 9 
     ) 

    [1] => Array 
     (
      [0] => Nagda 
      [1] => 1 
     ) 

    [2] => Array 
     (
      [0] => Sayyed 
      [1] => 2 
     ) 
) 
+0

OMGは、私はちょうど私がそう多くの機能を使用してについては、この質問とジョークのために作られた、この素晴らしいワンライナーを自慢するために戻ってこのページに来ました私の解決策!あなたはすでに私の正確なコードを投稿しました! AAAARGGH! (... upvote) – mickmackusa

関連する問題