• 技术文章 >后端开发 >php教程

    二维数组,算法

    2016-06-13 12:18:58原创501
    二维数组,求一个算法
    这个数组是这样子的,怎么把这样的数组,相同employee_id的yeji加起来
    Array
    (
    [0] => Array
    (
    [employee_id] => 26
    [yeji] => 60
    )

    [1] => Array
    (
    [employee_id] => 25
    [yeji] => 105
    )

    [2] => Array
    (
    [employee_id] => 26
    [yeji] => 100
    )

    [3] => Array
    (
    [employee_id] => 25
    [yeji] => 0
    )

    )

    合并后的数组是这样
    Array
    (
    [0] => Array
    (
    [employee_id] => 26
    [yeji] => 160
    )

    [1] => Array
    (
    [employee_id] => 25
    [yeji] => 105
    )
    )
    ------解决思路----------------------
    $ar = array (
    0 => array (
    'employee_id' => '26',
    'yeji' => '60',
    ),
    1 => array (
    'employee_id' => '25',
    'yeji' => '105',
    ),
    2 => array (
    'employee_id' => '26',
    'yeji' => '100',
    ),
    3 => array (
    'employee_id' => '25',
    'yeji' => '0',
    ),
    );

    $res = array();
    foreach($ar as $item) {
    $res[$item['employee_id']]['employee_id'] = $item['employee_id'];
    @$res[$item['employee_id']]['yeji'] += $item['yeji'];
    }
    print_r(array_values($res));
    Array
    (
    [0] => Array
    (
    [employee_id] => 26
    [yeji] => 160
    )

    [1] => Array
    (
    [employee_id] => 25
    [yeji] => 105
    )

    )


    ------解决思路----------------------

    $arr = array (
    0 => array (
    'employee_id' => '26',
    'yeji' => '60',
    ),
    1 => array (
    'employee_id' => '25',
    'yeji' => '105',
    ),
    2 => array (
    'employee_id' => '26',
    'yeji' => '100',
    ),
    3 => array (
    'employee_id' => '25',
    'yeji' => '0',
    ),
    );
    $item=array();
    foreach($arr as $k=>$v){
    if(!isset($item[$v['employee_id']])){
    $item[$v['employee_id']]['employee_id']=$v['employee_id'];
    $item[$v['employee_id']]['yeji']=$v['yeji'];
    }else{
    $item[$v['employee_id']]['yeji']+=$v['yeji'];
    }
    }
    print_r($item);



    Array
    (
    [26] => Array
    (
    [employee_id] => 26
    [yeji] => 160
    )

    [25] => Array
    (
    [employee_id] => 25
    [yeji] => 105
    )

    )


    ------解决思路----------------------
    function calcArrSameId($arr=array())
    {
    foreach ($arr as $key => $value) {
    //print_r($value);die;
    if(!isset($tmp[$value['employee_id']]))
    {
    $tmp[$value['employee_id']]['employee_id'] = $value['employee_id'];
    $tmp[$value['employee_id']]['yeji'] = $value['yeji'];
    }else{
    $tmp[$value['employee_id']]['yeji'] += $value['yeji'];
    }

    }
    $list = array_values($tmp);
    print_r($list);exit;
    }
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:nbsp employee Array yeji gt
    上一篇:CI 框架去掉url 中index.php的步骤 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 一文理解和实现现代PHP框架里的IOC容器• 深入了解PHP:用gdb调试源码• 实例介绍:使用Docker快速搭建多版本PHP开发环境• 实例详解PHP统计代码行数及文件数量的方法• php的ajax联动菜单_PHP教程
    1/1

    PHP中文网