合并数据中 key相同的merge_key的值

来源:互联网 发布:淘宝美工工具 编辑:程序博客网 时间:2024/06/05 09:51

工作中或者面试中一个常见的问题 将数组中相同某个key的另一个key的值合并。


<?phpheader('Content-type:text/html; charset=UTF-8');/*** 合并数据中 key相同的merge_key的值* * @param array  $arr        要处理的数组* @param string $key        参照key* @param string $merge_key  要合并的key* @return array             处理后的数组*/function val_merge($arr, $key, $merge_key) {    //存放结果的数组    $result = array();        foreach( $arr as $val ) {        //因为以address为基准,所以将address当做key存放数据        isset($result[$val[$key]]) ? ( $result[$val[$key]][$merge_key] += $val[$merge_key] ) : ( $result[$val[$key]] = $val );    }        //返回处理后的数组    return array_values($result);}//要处理的数组$arr= array(     array("address"=>"美国", "count"=>123),     array("address"=>"美国", "count"=>34),     array("address"=>"中国", "count"=>2),     array("address"=>"中国", "count"=>20),     array("address"=>"法国", "count"=>345));var_export( val_merge($arr, 'address', 'count'));


0 0
原创粉丝点击