首页 > php教程 > php手册 > 正文

php数组合并示例代码

WBOY
发布: 2016-06-06 19:53:00
原创
1383 人浏览过

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 分享一个php数组合并的实例代码,学习下php中实现数组合并的方法,有需要的朋友做个参考。 最近做一个报表,要求若某几项相同就合并这几行,并将数字项相加显示。 首先,考虑遍历数组,拿出数组的最

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

  分享一个php数组合并的实例代码,学习下php中实现数组合并的方法,有需要的朋友做个参考。

  最近做一个报表,要求若某几项相同就合并这几行,并将数字项相加显示。

  首先,考虑遍历数组,拿出数组的最后一项跟其它项比较,若符合条件则做合并操作并删除该项。

  但是实际运行,发现执行3次后就不执行了,而这时的数组长度是6.一直没搞懂为什么不继续执行了。

  数组是采用&引用删除的,删除项确影响到了原数组的。

  既然删除会影响遍历,那就不删除,而是将该项的值设置为空。

  问题就解决了,最后用array_filter过滤下空值即可。

  php数组合并代码:

  代码示例:

  

  //合并itemsearch的结果

  private function mergeList(&$arr)

  {

  $data = array();

  $n = &$arr;

  foreach ($n as $key => $value) {

  if(!$value) continue;

  array_push($data,$this->getItem($value,$n));

  }

  return array_filter($data);

  }

  private function getItem(&$item,&$arr){

  foreach ($arr as $key => $value) {

  if(!$value) {

  continue;

  };

  if($item["itemTypeName"] == $value["itemTypeName"]

  && $item["weight"] == $value["weight"]

  && $item["type"] == $value["type"]){

  if($item["itemTypeId"] == $value["itemTypeId"]

  && $item["warehouseId"] == $value["warehouseId"]){

  continue;

  }else{

  $item["stockIn"] += $value["stockIn"];

  $item["remain"] += $value["remain"];

  $item["stockOut"] += $value["stockOut"];

  $item["stockIn"] = sprintf("%.4f",$item["stockIn"]);

  $item["remain"] = sprintf("%.4f",$item["remain"]);

  $item["stockOut"] = sprintf("%.4f",$item["stockOut"]);

  $arr[$key] = "";

  }

  }

  }

  return $item;

  }

php数组合并示例代码

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板