开发者社区> 问答> 正文

关于PHP数组合并的问题

            "0"=>array(
                'id' => '2',
                'b' => 0,
                'num' => 4

                ),

            "1"=>array(
                'id' => '1',
                'b' => 0,
                'num' => 4 
                )
        );
        $arr2=array(
            "1"=>array(
                'id' => '3',
                'b' => 0,
                'num' => 4

                ),

            "2"=>array(
                'id' => '2',
                'b' => 0,
                'num' => 4 
                )
        );

想要合并这个两个数组,判断条件,id,b两个元素都相同的情况的NUM值相加。新数组键值重新排列0 1 2 3
求高手指点。谢谢。

展开
收起
小旋风柴进 2016-03-06 17:43:04 1677 0
1 条回答
写回答
取消 提交回答
  • 望采纳

    <?php
    $arr1=array(
    "0"=>array(
    'id' => '2',
    'b' => 0,
    'num' => 4
    
                ),
    
            "1"=>array(
                'id' => '1',
                'b' => 0,
                'num' => 4 
                )
        );
        $arr2=array(
            "1"=>array(
                'id' => '3',
                'b' => 0,
                'num' => 4
    
                ),
    
            "2"=>array(
                'id' => '2',
                'b' => 0,
                'num' => 4 
                )
        );
    $arr3 = array_merge($arr1, $arr2);
    function arr_combine($array){//按照id值进行冒泡排序
    $length = count($array);
    for($i = 0; $i < $length; $i++) {
    for($j = $i+1; $j < $length; $j++){
    if ($array[$i]['id'] > $array[$j]['id'] ) {
    $tmp = $array[$i];
    $array[$i] = $array[$j];
    $array[$j] = $tmp;
    }else if($array[$i]['id'] == $array[$j]['id'] && $array[$i]['b'] == $array[$j]['b']){//按照id,b值是否相同,进行合并
    $array[$i]['num'] = $array[$i]['num']+$array[$j]['num'];
    $array[$j]['num'] = 0;//此处将合并过的数组的num设置为0
    } 
    }
    }
    //对结果数组进行处理,如果num为0,则剔除
    foreach( $array as $key => $value ) {
    if($value['num'] == 0) unset($array[$key]);
    }
    return $array;
    }
    var_dump(arr_combine($arr3));
    
    
    2019-07-17 18:54:57
    赞同 展开评论 打赏
问答分类:
PHP
问答地址:
问答排行榜
最热
最新

相关电子书

更多
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
PHP安全开发:从白帽角度做安全 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载