`
flex_莫冲
  • 浏览: 1092328 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

php实现数组的合并

    博客分类:
  • php
 
阅读更多
最近做一个报表,要求若某几项相同就合并这几行,并将数字项相加显示。

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

但是实际运行,发现执行3次后就不执行了,而这时的数组长度是6.一直没搞懂为什么不继续执行了。数组是采用&引用删除的,删除项确影响到了原数组的。


后来想到一个办法,既然删除会影响遍历,那就不删除,而是将该项的值设置为空。问题就解决了,最后用array_filter过滤下空值就可以了。

代码如下

//合并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数组合并 array_merge-php函数_.docx

    PHP 数组合并是指将多个数组合并成一个新的数组,这可以使用 array_merge 函数或 array_map 函数来实现。在本文中,我们将详细介绍 array_merge 和 array_map 函数的用法和应用场景。 array_merge 函数 array_...

    php数组合并 array_merge-php函数__2.docx

    在PHP编程中,经常需要对数组进行操作,其中之一就是数组的合并。本文将详细介绍`array_merge`函数的使用方法及其注意事项。 #### 二、`array_merge`函数概述 `array_merge`是PHP中用于合并一个或多个数组的内置...

    php相同数据数组合并 array_merge_recursive-php函数_.docx

    这个例子中,无索引的数组与有索引的数组合并,`array_merge_recursive`仍然保留了数据的完整性,将无索引数组的元素与有索引数组的键值对合并: ```php Array ( [0] => site [1] => 域名 [2] => .forasp.cn ...

    php中有关合并某一字段键值相同的数组合并的改进

    传统的数组合并,如使用`array_merge`函数,只能简单地合并两个或多个数组,而无法根据特定字段进行智能合并。然而,当我们需要合并的数组元素具有共享的键值时,我们需要一种更高级的方法来处理这种情况。描述中...

    php数组合并 array_merge-php函数__1.docx

    `array_merge`函数允许我们将两个或更多的数组合并成一个新的数组。它的基本语法是: ```php $newarray = array_merge(array1, array2, ..., arrayN); ``` 在这个语法中,`array1`、`array2`到`arrayN`是你想要合并...

    PHP实现数组根据某个字段进行水平合并,横向合并案例分析

    PHP数组遍历和合并的基本操作技巧是实现此功能的基础。我们将使用array_merge()函数来合并两个数组,然后利用foreach循环遍历合并后的数组。在循环体内部,我们会检查每个元素的日期字段,如果该日期在结果数组中...

    php多维数组合并类库

    这类库通常提供了一组方法,以方便开发者进行各种复杂的数组合并操作,例如将多个多维数组合并为一个,或者将一维数组与多维数组合并。这些方法可能包括递归合并、索引处理等,使得合并过程更加灵活且高效。 描述中...

    php数组合并array_merge()函数使用注意事项

    在PHP编程中,数组操作是十分常见的任务,`array_merge()`函数则是用于合并一个或多个数组的神器。本文将深入探讨`array_merge()`函数的使用注意事项,并提供相关的示例和解决方案。 `array_merge()`函数的基本用法...

    php下将多个数组合并成一个数组的方法与实例代码

    1.合并数组 array_merge()函数将数组合并到一起,返回一个联合的数组。所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次迫加。其形式为: 复制代码 代码如下: array array_merge (array array1 ...

    PHP实现数组递归转义的方法

    下面我们就来详细解释PHP中实现数组递归转义的方法以及相关的知识点。 首先,了解PHP中的转义函数。在PHP中,最常用的转义函数是`addslashes()`, 它可以为字符串中的一组特殊字符添加反斜杠。这些特殊字符包括单...

    php合并数组并保留键值的实现方法

    在PHP编程语言中,处理数组是一项常见的任务,而合并数组是其中的一个重要操作。当我们需要把两个或更多数组的数据整合到一起时,PHP提供了多种方法。本文将详细讲解如何在合并数组时保留键值,特别是在处理包含特定...

    PHP 数组的介绍

    在本篇文章中,我们将深入探讨PHP数组的各个方面,包括其定义、类型、操作方法以及一些实用技巧。 **1. 定义数组** 在PHP中,我们可以使用`array()`函数或者直接用方括号`[]`来创建数组。下面是一些示例: ```php...

    PHP合并数组的2种方法小结

    在此前合并数组我一直用的是array_merge()这个函数,但最近我在换工作的时候遇到一道合并数组的面试题,我当时想的是将两个数组先转化为字符串,合并后再转化为数组输出,面试官说这个思路不太对,完了bulabula讲了...

    C语言实现在数组A上有序合并数组B的方法

    本文实例讲述了C语言实现在数组A上有序合并数组B的方法,分享给大家供大家参考。具体分析如下: 题目:数组A和数组B均有序,数组A有足够大内存来容纳数组B,将数组B有序合并到数组A中 分析:如果由前至后合并,...

    PHP 数组的特殊操作

    对于数组的合并,`array_merge()`函数可以将多个数组合并为一个。而`array_diff()`和`array_intersect()`函数分别用于找出两个或更多数组的差异和交集。 在数组操作中,排序是一个常见的需求。PHP提供了多种排序...

    php数组操作函数

    key_exists -- 检查给定的键名或索引是否存在于数组中 array_keys -- 返回数组中所有的键名 array_map -- 将回调函数作用到给定数组的单元上 array_merge_recursive -- 递归地合并一个或多个数组 array_merge -- ...

    php数组实现根据某个键值将相同键值合并生成新二维数组的方法

    本篇文章将深入探讨如何根据特定键值将相同键值的二维数组合并成一个新的二维数组。这在数据分析、数据整理以及信息分组等场景中非常实用。 首先,我们要理解问题的核心:将具有相同键值(比如键'a')的数组元素...

    php数组学习之一

    我们可以理解这篇博文可能不仅讲解了基本的数组操作,还涉及了一些高级用法或自定义函数的实现,比如遍历多维数组、数组排序(`sort()`、`rsort()`、`asort()`、`arsort()`等)、数组合并(`array_merge()`)和数组...

    PHP简单实现合并2个数字键数组值的方法

    本文实例讲述了PHP简单实现合并2个数字键数组值的方法。分享给大家供大家参考,具体如下: 先要了解一个基础知识点:PHP合并数组+与array_merge的区别分析 <?php /** * PHP合并2个数字键数组的值 * * @param ...

Global site tag (gtag.js) - Google Analytics