首頁 >php教程 >php手册 >php数组合并示例代码

php数组合并示例代码

WBOY
WBOY原創
2016-06-06 19:53:001412瀏覽

欢迎进入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数组合并示例代码

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn