Php 合并两个数组并添加数组计数的值

Php 合并两个数组并添加数组计数的值,php,Php,我有两个这样的数组 $arr1 = array('Prabhash', 'Nagda', 'Sayyed','Prabhash'); $arr2 = array('4', '1', '2','5'); echo "<pre>"; print_r($arr1); print_r($arr2); <?php $arr1 = array('Prabhash', 'Nagda', 'Sayyed','Prabhash'); $arr2 = array('4', '1', '2','5

我有两个这样的数组

$arr1 = array('Prabhash', 'Nagda', 'Sayyed','Prabhash');
$arr2 = array('4', '1', '2','5');
echo "<pre>";
print_r($arr1);
print_r($arr2);
<?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
        )

)

使用
数组映射
数组键
数组翻转
数组唯一
数组相交键
数组求和
功能的简短解决方案:

输出:


使用array mergeOMG我刚刚回到这一页来吹嘘我为这个问题做的一行代码,并开玩笑说在我的解决方案中使用了这么多函数!你已经发布了我的准确代码!!!啊!(…向上投票)
Array
(
    [0] => Array
        (
            [0] => Prabhash
            [1] => 9
        )

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

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

)
<?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);
?>
 Array
(
    [0] => Array
        (
            [0] => Prabhash
            [1] => 9
        )

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

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

)
$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
        )
)