鍍金池/ 問答/PHP  HTML/ php 數(shù)組問題

php 數(shù)組問題

$arr = [
            ['name'=>'abc',value=>12],
            ['name'=>'abc',value=>15],
            ['name'=>'abc123',value=>555],
        ];

將$arr 處理  得到
$arr = [
            ['name'=>'abc',value=>27],
            ['name'=>'abc123',value=>555],
        ];
        
有什么簡潔的辦法沒有? 指點指點?
回答
編輯回答
薄荷糖
<?php
$arr = [
    ['name'=>'abc',"value"=>12],
    ['name'=>'abc',"value"=>15],
    ['name'=>'abc123',"value"=>555],
];
$re = array_reduce($arr,function($p,$c){
    foreach($p as &$item){
        if($item["name"] == $c["name"]){
            echo $c["value"];
            echo $item["value"];
            $item["value"]=$item["value"]+$c["value"];
            return $p;
        }
    }
    array_push($p,$c);
    return $p;
},[]);
2017年8月7日 10:46
編輯回答
艷骨
function test($arr, $k, $v){
    $aa = [];
    foreach($arr as $item) {
        $aa[$item[$k]] = isset($aa[$item[$k]]) ? $aa[$item[$k]] + $item[$v]  : $item[$v];
    }
    return $aa;
}

$result = test($arr, 'name', 'value');
2017年2月15日 03:00