php根据分类合并数组的方法实例详解


Posted in PHP onNovember 06, 2013

最简单的数组合并我们只要使用array_merge即可
array_merge()将两个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
数组键名为数字键名时,要合并的两个数组中有同名数字KEY的时候,使用array_merge()不会覆盖掉原来的值,而使用“+”合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(注意:不是覆盖而是保留最先出现的那个值)。例子:

$array1 = array(1=>'0');

$array2 = array(1=> "data");
     $result1 = $array2 + $array1;/*结果为$array2的值*/
    print_r($result);
    $result = $array1 + $array2 ;/*结果为$array1的值*/
    print_r($result);
    $result3 = array_merge($array2,$array1);/*结果为$array2和$array1的值,键名被重新分配*/
    print_r($result3);
    $result4 = array_merge($array1,$array2);/*结果为$array1和$array2的值,键名被重新分配*/
    print_r($result4);

输出结果为:
Array ( [1] => data )
Array ( [1] => 0 )
Array (
[0] => data
[1] => 0
)
Array
(
[0] => 0
[1] => data
)

2.当相同数组键名为字符时,“+”运算符与键名为数字时一样,但array_merge()此时会覆盖掉前面相同键名的值。
例子:

 $array1 = array('asd'=>'0');
$array2 = array('asd' => "data");
  $result1 = $array2 + $array1;/*结果为$array2的值*/
  print_r($result);
    $result = $array1 + $array2 ;/*结果为$array1的值*/
    print_r($result);
    $result3 = array_merge($array2,$array1);/*结果为$array1*/
    print_r($result3);
    $result4 = array_merge($array1,$array2);/*结果为$array2*/
    print_r($result4);

输出结果为:
Array ( [asd] => data )
Array ( [asd] => 0 )
Array ( [asd] => 0 )
Array ( [asd] => data )

讲了这么多费话,下面才是我要给各位朋友介绍的
根据分类字段进行数组重组
 

<?php 
//需要重组的数组 
$arrar=array(); 
$array[]=array('ItemID' => 110126866896,'CategoryID'=>111); 
$array[]=array('ItemID' => 120126866896,'CategoryID'=>112); 
$array[]=array('ItemID' => 130126866896,'CategoryID'=>113); 
$array[]=array('ItemID' => 140126866896,'CategoryID'=>114); 
$array[]=array('ItemID' => 150126866896,'CategoryID'=>115); 
$array[]=array('ItemID' => 160126866896,'CategoryID'=>116); 
$array[]=array('ItemID' => 170126866896,'CategoryID'=>117); 
$array[]=array('ItemID' => 118126866896,'CategoryID'=>111); 
$array[]=array('ItemID' => 121126866896,'CategoryID'=>112); 
$array[]=array('ItemID' => 132126866896,'CategoryID'=>113); 
$array[]=array('ItemID' => 143126866896,'CategoryID'=>114); 
$array[]=array('ItemID' => 154126866896,'CategoryID'=>115); 
$array[]=array('ItemID' => 165126866896,'CategoryID'=>116); 
$array[]=array('ItemID' => 176126866896,'CategoryID'=>117); 
//数组根据分类进行重组 
$newArray=array(); 
foreach($array as $val){ 
    $newArray[$val['CategoryID']][]=$val; 
} //删除原始数组释放空间 
$array=null; 
unset($array); 
print_r($newArray); 
?>
 
PHP 相关文章推荐
php socket方式提交的post详解
Jul 19 PHP
php preg_match_all结合str_replace替换内容中所有img
Oct 11 PHP
关于Appserv无法打开localhost问题的解决方法
Oct 16 PHP
PHP学习之字符串比较和查找
Apr 17 PHP
用PHP书写安全的脚本代码
Feb 05 PHP
PHP循环结构实例讲解
Feb 10 PHP
Laravel中使用阿里云OSS Composer包分享
Feb 10 PHP
php删除指定目录的方法
Apr 03 PHP
学习php设计模式 php实现原型模式(prototype)
Dec 07 PHP
PHP中的print_r 与 var_dump 输出数组
Jun 13 PHP
PHP getName()函数讲解
Feb 03 PHP
微信公众平台开发教程⑤ 微信扫码支付模式介绍
Apr 10 PHP
php foreach循环中使用引用的问题
Nov 06 #PHP
php用正则表达式匹配中文实例详解
Nov 06 #PHP
php引用传值实例详解学习
Nov 06 #PHP
php二维数组排序详解
Nov 06 #PHP
PHP Curl多线程原理实例详解
Nov 06 #PHP
php二维数组用键名分组相加实例函数
Nov 06 #PHP
php不用正则验证真假身份证
Nov 06 #PHP
You might like
php file_exists 检查文件或目录是否存在的函数
2010/05/10 PHP
php中curl使用指南
2015/02/05 PHP
PHP使用DirectoryIterator显示下拉文件列表的方法
2015/03/13 PHP
php实现二进制和文本相互转换的方法
2015/04/18 PHP
PHP实现C#山寨ArrayList的方法
2015/07/16 PHP
PHP如何将XML转成数组
2016/04/04 PHP
jQuery 操作下拉列表框实现代码
2010/02/22 Javascript
javascript学习基础笔记之DOM对象操作
2011/11/03 Javascript
jQuery基础框架浅入剖析
2012/12/27 Javascript
js利用数组length属性清空和截短数组的小例子
2014/01/15 Javascript
jQuery中queue()方法用法实例
2014/12/29 Javascript
7个jQuery最佳实践
2016/01/12 Javascript
jQuery 实现ajax传入参数含有特殊字符的方法总结
2016/10/17 Javascript
完美解决linux下node.js全局模块找不到的情况
2018/05/16 Javascript
详解React native fetch遇到的坑
2018/08/30 Javascript
JavaScript常用数组操作方法,包含ES6方法
2020/05/10 Javascript
微信小程序结合Storage实现搜索历史效果
2019/05/18 Javascript
关于微信小程序获取小程序码并接受buffer流保存为图片的方法
2019/06/07 Javascript
小程序input数据双向绑定实现方法
2019/10/17 Javascript
JS实现点击下拉列表文本框中出现对应的网址,点击跳转按钮实现跳转
2019/11/25 Javascript
Python os模块介绍
2014/11/30 Python
django 邮件发送模块smtp使用详解
2019/07/22 Python
CSS3 中的@keyframes介绍
2014/09/02 HTML / CSS
Tory Burch英国官方网站:美国时尚生活品牌
2017/12/06 全球购物
Delphi CS笔试题
2014/01/04 面试题
小区门卫工作职责
2013/12/14 职场文书
社团活动总结报告
2014/06/27 职场文书
乒乓球兴趣小组活动总结
2014/07/08 职场文书
党员领导干部民主生活会批评与自我批评发言
2014/09/28 职场文书
销售助理岗位职责
2015/02/11 职场文书
2015秋季开学典礼主持词
2015/07/16 职场文书
JVM上高性能数据格式库包Apache Arrow入门和架构详解(Gkatziouras)
2021/05/26 Servers
Python办公自动化之教你用Python批量识别发票并录入到Excel表格中
2021/06/26 Python
MySQL中连接查询和子查询的问题
2021/09/04 MySQL
Python中的嵌套循环详情
2022/03/23 Python
vue使用watch监听属性变化
2022/04/30 Vue.js