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 实例化类的一点摘记
Mar 23 PHP
php下连接ftp实现文件的上传、下载、删除文件实例代码
Jun 03 PHP
供参考的 php 学习提高路线分享
Oct 23 PHP
PHP连接MySQL的2种方法小结以及防止乱码
Mar 11 PHP
ThinkPHP自动完成中使用函数与回调方法实例
Nov 29 PHP
php实现猴子选大王问题算法实例
Apr 20 PHP
Zend Framework生成验证码并实现验证码验证功能(附demo源码下载)
Mar 22 PHP
100行PHP代码实现socks5代理服务器
Apr 28 PHP
php事务回滚简单实现方法示例
Mar 28 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
Sep 22 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
Dec 01 PHP
php实现根据身份证获取精准年龄
Feb 26 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输出控制功能在简繁体转换中的应用
2006/10/09 PHP
php Smarty初体验二 获取配置信息
2011/08/08 PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
2014/11/18 PHP
PHP获取ip对应地区和使用网络类型的方法
2015/03/11 PHP
php解决和避免form表单重复提交的几种方法
2016/08/31 PHP
php排序算法实例分析
2016/10/17 PHP
详解PHP发送邮件知识点
2018/05/06 PHP
Jquery图片滚动与幻灯片的实例代码
2013/04/08 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
2013/12/13 Javascript
JavaScript中使用stopPropagation函数停止事件传播例子
2014/08/27 Javascript
基于Bootstrap实现图片轮播效果
2016/05/22 Javascript
非常酷炫的Bootstrap图片轮播动画
2016/05/27 Javascript
Jquery ajax请求导出Excel表格的实现代码
2016/06/08 Javascript
如何用JS/HTML将时间戳转换为“xx天前”的形式
2017/02/06 Javascript
vue遍历对象中的数组取值示例
2019/11/07 Javascript
JavaScript回调函数callback用法解析
2020/01/14 Javascript
Vue 使用typescript如何优雅的调用swagger API
2020/09/01 Javascript
浅谈python 里面的单下划线与双下划线的区别
2017/12/01 Python
Python使用遗传算法解决最大流问题
2018/01/29 Python
python中map的基本用法示例
2018/09/10 Python
浅谈Python在pycharm中的调试(debug)
2018/11/29 Python
总结python中pass的作用
2019/02/27 Python
详解小白之KMP算法及python实现
2019/04/04 Python
利用 Flask 动态展示 Pyecharts 图表数据方法小结
2019/09/04 Python
Python面向对象之多态原理与用法案例分析
2019/12/30 Python
python__new__内置静态方法使用解析
2020/01/07 Python
使用 PyTorch 实现 MLP 并在 MNIST 数据集上验证方式
2020/01/08 Python
pandas读取csv文件提示不存在的解决方法及原因分析
2020/04/21 Python
Python GUI库Tkiner使用方法代码示例
2020/11/27 Python
html5使用canvas画一条线
2014/12/15 HTML / CSS
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
2015/09/07 面试题
销售主管岗位职责范本
2014/02/14 职场文书
铁人纪念馆观后感
2015/06/16 职场文书
少先队大队委竞选口号
2015/12/25 职场文书
python编程简单几行代码实现视频转换Gif示例
2021/10/05 Python
mysql insert 存在即不插入语法说明
2022/03/25 MySQL