欢迎进入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;
}

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

WebStorm Mac版
好用的JavaScript开发工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

Atom编辑器mac版下载
最流行的的开源编辑器