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

 更新时间:2013年11月06日 10:45:32   作者:  
在php中如果是简单的数组合并有很多的方法,但是我今天要求是根据数组ID然后重新合并数组,是要根据分类来操作
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

最简单的数组合并我们只要使用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);

?>
 

相关文章

  • thinkPHP简单导入和使用阿里云OSSsdk的方法

    thinkPHP简单导入和使用阿里云OSSsdk的方法

    这篇文章主要介绍了thinkPHP简单导入和使用阿里云OSSsdk的方法,简单说明了阿里云OSS的php sdk下载地址及thinkPHP导入与使用OSSsdk的方法,需要的朋友可以参考下
    2017-03-03
  • Yii2.0表关联查询实例分析

    Yii2.0表关联查询实例分析

    这篇文章主要介绍了Yii2.0表关联查询的方法,结合实例形式分析了Yii中关联查询的实现方法与相关使用技巧,需要的朋友可以参考下
    2016-07-07
  • PHP将字符分解为多个字符串的方法

    PHP将字符分解为多个字符串的方法

    这篇文章主要介绍了PHP将字符分解为多个字符串的方法,通过split进行正则匹配实现分割字符串的功能,是非常实用的技巧,需要的朋友可以参考下
    2014-11-11
  • laravel框架模型和数据库基础操作实例详解

    laravel框架模型和数据库基础操作实例详解

    这篇文章主要介绍了laravel框架模型和数据库基础操作,结合实例形式详细分析了laravel框架模型的定义及数据库的增删改查等相关操作技巧,需要的朋友可以参考下
    2020-01-01
  • 小偷PHP+Html+缓存

    小偷PHP+Html+缓存

    小偷PHP+Html+缓存...
    2006-12-12
  • PHP Cookei记录用户历史浏览信息的代码

    PHP Cookei记录用户历史浏览信息的代码

    购物类网站有时候需要了解用户最近的需求,收集和推送用户的查看记录成为了大部分此类的网站不可缺少的功能,下面是本人在开发项目中自己写的方法,一来留有保存,二来和大家分享
    2016-02-02
  • CentOS下与Apache连接的PHP多版本共存方案实现详解

    CentOS下与Apache连接的PHP多版本共存方案实现详解

    这篇文章主要介绍了CentOS下与Apache连接的PHP多版本共存方案实现,针对mod_fcgi模块的配置作了一些说明,需要的朋友可以参考下
    2015-12-12
  • 如何正确配置Nginx + PHP

    如何正确配置Nginx + PHP

    这篇文章主要为大家详细介绍了配置Nginx + PHP的步骤,了解Nginx + PHP配置的简单教程,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • Yii框架布局文件的动态切换操作示例

    Yii框架布局文件的动态切换操作示例

    这篇文章主要介绍了Yii框架布局文件的动态切换操作,结合实例形式分析了Yii框架控制器动态切换布局的相关实现技巧,需要的朋友可以参考下
    2019-11-11
  • Laravel?Swagger?使用超详细教程

    Laravel?Swagger?使用超详细教程

    Swagger?是一个基于?Open?Api?规范的?API?管理工具,通过项目注解的形式自动构建?API?文档,拥有在线调试的功能,这篇文章主要介绍了Laravel?Swagger?使用完整教程,需要的朋友可以参考下
    2023-09-09

最新评论

?


http://www.vxiaotou.com