public function tt(){

        $param =  array(
array (
'hykno' => '2222222-CB',
'tcdk_fid' => '458B6D70-FB7F-47AE-8356-777777777777',
'totalamount' => '',
'offsetamount' => '90.0',
'postamount' => '',
'hysyamout' => '10.0',
'protypeid' => '',
),
array (
'hykno' => '2222222-CB',
'tcdk_fid' => '458B6D70-FB7F-47AE-8356-777777777777',
'totalamount' => '', // 需要支付的钱
'offsetamount' => '5.0', // 抵扣分类1下5.0份;
'postamount' => '', // 运费
'hysyamout' => '5.0',
'protypeid' => '',
),
array (
'hykno' => '2222222-CB',
'tcdk_fid' => '458B6D70-FB7F-47AE-8356-777777777777',
'totalamount' => '', // 需要支付的钱
'offsetamount' => '5.0', // 抵扣分类1下5.0份;
'postamount' => '', // 运费
'hysyamout' => '5.0',
'protypeid' => '',
),
array (
'hykno' => '2222222-CB',
'tcdk_fid' => '458B6D70-FB7F-47AE-8356-777777777777',
'totalamount' => '', // 需要支付的钱
'offsetamount' => '5.0', // 抵扣分类1下5.0份;
'postamount' => '', // 运费
'hysyamout' => '5.0',
'protypeid' => '',
)
); $this->merger_by_one($param,'protypeid',['totalamount','offsetamount','postamount','hysyamout']);
} /***
* @param $param 需要处理统一格式的数组
* @param $one_str 根据某个字段合并
* @param $plus_arr 需要求和的字段列表数组
*/
public function merger_by_one($param,$one_str,$plus_arr){
$u = array();
foreach ($param as $k => $v){
if (!in_array($v[$one_str],$u)){
$u[] = $v[$one_str];
}
} $data = array();
foreach ($u as $uk => $uv)
{
foreach ($param as $pk => $pv)
{
$all_keys = array_keys($pv);
if ($pv[$one_str] == $uv)
{
foreach ($all_keys as $key_val)
{
if (in_array($key_val,$plus_arr)){
$data[$uv][$key_val] += $pv[$key_val];
} else {
$data[$uv][$key_val] = $pv[$key_val];
}
}
}
}
} $data = array_values($data); dump($data);
}

merger_by_one 处理二维数组,根据里面某字段合并, 里面有的保留,有的求和~~的更多相关文章

  1. php 将一个或多个二维数组组合成一个二维数组并根据某个字段排序排序

    最近再写项目的时候,碰到一个问题:如何将一个或多个二维数组组合成一个二维数组并根据某个字段排序排序:实在是想不到哪个php库中有哪个函数能实现,只能自己写一个了,将代码写出来后,发现自己的代码繁琐,并 ...

  2. PHP二维数组如何根据某个字段排序

    分享下PHP二维数组如何根据某个字段排序的方法. 从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条. 本文记录的要实现的功能类似于 ...

  3. php二维数组的某一字段 做分组统计

    $country=array_column($order,'country');$countryGP=array_count_values($country);对二维数组的某一字段 做分组统计

  4. 一个有用的排序函数,array_multisort(),下面的一个用法是根据二维数组里的一个字段值的大小,对该二维数组进行重新排序

    从二维数组$cashes中取出一列 'store_id'(二维数组中的每个一维数组都有的字段),按照这个的大小排序,对二维数组$caches里面的一维数组进行重新排序 实际应用如下 想让相同部门的排在 ...

  5. PHP:根据二维数组中的某个字段进行排序

    首先了解下以下两个函数: 1.array_column() 返回输入数组中某个单一列的值. 2.array_multisort() 函数返回排序数组.您可以输入一个或多个数组.函数先对第一个数组进行排 ...

  6. PHP 根据二维数组中的某个字段进行排序

    <?php $data = array( array( 'id' => 5698, 'first_name' => 'Bill', 'last_name' => 'Gates' ...

  7. PHP 根据key 给二维数组分组

    我们经常拿到一个二维数组出来,会发现结果和自己想要的有些偏差,可能需要根据二维数组里的某个字段对数组分组.先来看以下数组, Array ( [0] => Array ( [id] => 1 ...

  8. php二维数组根据某个字段去重

    php的二维数组根据某个字段去重,在这默认为二维数组的结构是一样的,现在根据二维数组里的id字段去重,把id相同的重复的元素去掉 /** * 二维数组根据某个字段去重 * @param array $ ...

  9. 二维数组针对某字段排序 - array_multisort()

    /** * 针对二维数组下的某字段排序 * @param array $myarr 被排序数组 * @param string $sort_key 排序根据字段 * @param flag $sort ...

随机推荐

  1. +new Date()的用法

    var s=+newDate();   var s=+newDate(); 解释如下:=+是不存在的; +new Date()是一个东西; +相当于.valueOf(); 看到回复补充一下.getTi ...

  2. Linux 读书笔记 三 (第二章)

      一.学习目标 1. 理解二进制在计算机中的重要地位 2. 掌握布尔运算在C语言中的应用 3. 理解有符号整数.无符号整数.浮点数的表示 4. 理解补码的重要性 5. 能避免C语言中溢出,数据类型转 ...

  3. JavaScript实现大整数减法

    继上一篇博文写了大整数加法之后,我又模拟上篇博文的算法,自己实现了大整数减法. 大整数减法相对于加法来说,稍微复杂一点.由于要考虑一些情况: 1. 两个数相减,可能会出现结果为正.负和0三种情况: 2 ...

  4. Sprint6

    进展:今天更改一下我们的计划,从实现主要功能开始,及闹钟和事件提醒部分.查看了一些有关闹钟部分的资料.

  5. 团队项目--NABCD模型

    蹭课神器 N(need需求) 每个人的兴趣都不一样,或许你很喜欢自己的专业,并且想再进一步学习专业知识:或许你不是太喜欢自己的专业,想上一些自己感兴趣的课程:但是,当你想上你所钟 意的课时,却发现自己 ...

  6. 学习总结:jQuery插件开发模式和结构

    学习博客链接: ①https://www.cnblogs.com/cyStyle/ ② https://www.cnblogs.com/chengyunshen/p/7277305.html ③ ht ...

  7. python字符串操作、文件操作,英文词频统计预处理

    1.字符串操作: 解析身份证号:生日.性别.出生地等. 凯撒密码编码与解码 网址观察与批量生成 解析身份证号:生日.性别.出生地等 def function3(): print('请输入身份证号') ...

  8. Java Lock & Condition

    /* jdk1.5以后将同步和锁封装成了对象. 并将操作锁的隐式方式定义到了该对象中, 将隐式动作变成了显示动作. Lock接口: 出现替代了同步代码块或者同步函数.将同步的隐式锁操作变成现实锁操作. ...

  9. Prism6下的MEF:第一个Hello World

    最近看书比较多,正好对过去几年的软件开发做个总结.写这个的初衷只是为了简单的做一些记录. 前言 复杂的应用程序总是面临很多的页面之间的数据交互,怎样创建松耦合的程序一直是多数工程师所思考的问题.诸如依 ...

  10. cropper.js 超级好用的裁剪图片工具

    最近要做一个照片裁剪功能.就选用了cropper.js 代码如下:贴出来 <div class="container"> <div class="row ...