二维数组相同键里的值相加

<?php
header("Content-type: text/html; charset=utf-8");

$_data1=Array
(
    "0" => Array
        (
            "userid" => 1,
            "username" => ‘admin‘,
            "roleid" => ‘超级管理员‘,
            "has_number" => 23,
            "no_number" => 0,
            "all_number" => 92
        ),

    "1" => Array
        (
            "userid" => 5,
            "username" => ‘office‘,
            "roleid" => ‘总编‘,
            "has_number" => 56,
            "no_number" => 0,
            "all_number" => 56
        ),

    "2" => Array
        (
            "userid" => 6,
            "username" => ‘nyfzjt001‘,
            "roleid" => ‘编辑‘,
            "has_number" => 65,
            "no_number" => 6,
            "all_number" => 112
        )

);
$_data2=Array
(
    "0" => Array
        (
            "userid" => 1,
            "username" => ‘admin‘,
            "roleid" => ‘超级管理员‘,
            "has_number" => 23,
            "no_number" => 0,
            "all_number" => 92
        ),

    "1" => Array
        (
            "userid" => 5,
            "username" => ‘office‘,
            "roleid" => ‘总编‘,
            "has_number" => 56,
            "no_number" => 0,
            "all_number" => 56
        ),

    "2" => Array
        (
            "userid" => 6,
            "username" => ‘nyfzjt001‘,
            "roleid" => ‘编辑‘,
            "has_number" => 65,
            "no_number" => 6,
            "all_number" => 112
        )

);

//两数组值相加
$data=array();
function array_add($arr1,$arr2)
{
    foreach ($arr1 as $k1 => $v1)
    {
        foreach ($arr2 as $k2 => $v2)
        {
            if($k1==$k2)
            {
                $data[$k1][‘userid‘]=$v1[‘userid‘];
                $data[$k1][‘username‘]=$v1[‘username‘];
                $data[$k1][‘roleid‘]=$v1[‘roleid‘];
                $data[$k1][‘has_number‘]=$v2[‘has_number‘]+$v1[‘has_number‘];
                $data[$k1][‘no_number‘]=$v2[‘no_number‘]+$v1[‘no_number‘];
                $data[$k1][‘all_number‘]=$v2[‘all_number‘]+$v1[‘all_number‘];
            }
        }

    }

 return $data;

}

print_r(array_add($_data1,$_data2));

 ?>
时间: 2024-10-16 03:14:41

二维数组相同键里的值相加的相关文章

PHP二维数组去除重复,重复值相加

$arr = array( array('id' => 122, 'name' => '张三', 'amount' => '1'), array('id' => 123, 'name' => '李四', 'amount' => '1'), array('id' => 124, 'name' => '王五', 'amount' => '1'), array('id' => 125, 'name' => '赵六', 'amount' =>

PHP 按二维数组的键值排序

/** * 按二维数组的键值排序 * @param unknown $array 二维数组 * @param unknown $key 二维数组的键值 * @param string $order 升序/降序 * @return multitype:unknown 返回排序后的数组 */ public static function arr_sort_in_key($array, $key, $order = "asc") { $arr_nums = $arr = array(); f

php二维数组修改键名

最近遇到一个问题,是关于json数据提交的时候,总是报出[object object]的错误,查了晚上需要资料,大部分的说法是json数据格式不规范导致的错误.一般建议说将dataType类型注释掉.但是都试了一下都没有解决.最后还怀疑是使用json_encode这个函数php版本的问题等等,都没有解决.主要我后台提交过来的是一个一维数组,而且还没有键值的一维数组.因此有同事说我的json数据格式不规范,必须要有键和值.这个我键蛋疼了,本来使用thinkphp的方式查出的数据就是二维数组,进行数

echarts中key-value形式的dataset source值转换为二维数组形式的dataset source值

在echarts的数据来源选型时,我在二维数组.对象数组两种形式中出现优于,看上去对象数组语义化挺好,但二维数组可以直接在echarts的各种例子里直接用,为了兼顾两个的长处,写了对象数组与二维数组的转换方法,代码如下(最外层花括号用于方便直接才控制台输出而不污染控制台环境): { // 原始key-value形式的objArr let objArr=[ {product: 'Matcha Latte', count: 823, score: 95.8}, {product: 'Milk Tea

二维数组追加键值对

1 $wid=$this->_post('order_id'); 2 if(!$wid){ 3 echo('工单信息获取失败!'); 4 exit; 5 } 6 $where=null; 7 $where['A.wid']=$wid; 8 $list=M('kefu_reply')->alias("A")->join('z_user_common as B on A.uid=B.id')-> 9 where($where)->field('A.*,B.re

php二维数组按照键值排序的方法

//按照传入数组中的num倒序 public function numdesc($array,$key="num",$order="desc"){ $arr_nums=$arr=array(); foreach($array as $k=>$v){ $arr_nums[$k]=$v[$key]; } if($order=='asc'){ asort($arr_nums); }else{ arsort($arr_nums); } foreach($arr_num

PHP如何随机获取一个二维数组中的一个值

获取一个数组: $awardid_list=pdo_fetchall('select id from '.tablename($this->table_award)); 这是微擎的写法哈,意思就是查询一组字段为id的数据: 二维数组如图: 那么值是1.2.3,我们如何随机获取呢,请往下看代码: $no=array_rand($awardid_list); print_r($awardid_list[$no]['id']); 这样就OK了哈,就可以随机获取值1.2.3了哦.

《两个二维数组(矩阵)相乘》

1 //两个二维数组相乘 2 #include<stdio.h> 3 #include<stdlib.h> 4 #define M 2 5 #define N 3 6 //#define P 6 7 void main() 8 { 9 int i,j,k; 10 //二维数组A和B求乘积,积放在数组C中 11 int A[M][N],B[N][M],C[M][M]; 12 //输入二维数组A的元素的值 13 printf("请输入矩阵A的元素:"); 14 fo

重载二维数组下标&quot;[][]&quot;

问题来源:(待续) 解决办法: (1) 可变长数组 对于可变的二维数组下标重载,在数组初始化时指定维数,之后可以像一般的二维数组进行赋值和取值操作. 当然,使用模板template来实现更好. 1 class Array2d{ 2 private: 3 int* a; 4 int nrow; 5 int ncol; 6 public: 7 Array2d(const int nrow_, const int ncol_) 8 :nrow(nrow_), ncol(ncol_) 9 { 10 a