Jquery中文网 www.jquerycn.cn
Jquery中文网 >  脚本编程  >  php  >  正文 php数组合并示例代码

php数组合并示例代码

发布时间:2017-11-23   编辑:www.jquerycn.cn
分享一个php数组合并的实例代码,学习下php中实现数组合并的方法,有需要的朋友做个参考。

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

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

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

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

php数组合并代码:
 

复制代码 代码示例:
<?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数组函数之array_combine() 数组合并函数
php数组实例(数组合并/拆分/追加/查找)
【PHP学习】多种方法实现合并数组
php 数组组合的演示实例
php分割数组示例
php无重复合并多个数组的元素值的代码
PHP二维数组去重的实例解析
PHP数组合并中 运算符和array_merge()之间有什么区别?
php生成数组与php全组合算法

关键词: php数组  数组合并   
[关闭]