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

 更新时间:2013年11月06日 10:45:32   作者:  
在php中如果是简单的数组合并有很多的方法,但是我今天要求是根据数组ID然后重新合并数组,是要根据分类来操作
最简单的数组合并我们只要使用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二维数组排序详解

    二维数组排序排序在php中也提供了一个函数array_multisort就可以直接排序了,下面我来介绍除了全使用array_multisort 对数组进行排序我们还写了一些自定二维数组排序方法
    2013-11-11
  • PHP设计模式之迭代器(Iterator)模式入门与应用详解

    PHP设计模式之迭代器(Iterator)模式入门与应用详解

    这篇文章主要介绍了PHP设计模式之迭代器(Iterator)模式,结合实例形式详细分析了PHP迭代器模式的相关概念、原理、应用案例及操作注意事项,需要的朋友可以参考下
    2019-12-12
  • Yii2第三方类库插件Imagine的安装和使用

    Yii2第三方类库插件Imagine的安装和使用

    本篇文章主要介绍了Yii2第三方类库插件Imagine的安装和使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • PHP 7.0.2 正式版发布

    PHP 7.0.2 正式版发布

    七年以来,PHP一直是第四大最流行的编程语言,驱动全球超过2亿多个网站,全球超过81.7%的公共网站在服务器端采用PHP。PHP在这个星期有了自2004年以来最大的飞跃,因为PHP 7已经发布
    2016-01-01
  • Laravel实现数据库迁移与支持中文的填充

    Laravel实现数据库迁移与支持中文的填充

    最近在学习Laravel数据库方面的内容,发现了一些资料不错整理出来分享给大家,下面这篇文章主要给大家介绍了关于Laravel实现数据库迁移与支持中文填充的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。
    2017-11-11
  • PHP编写学校网站上新生注册登陆程序的实例分享

    PHP编写学校网站上新生注册登陆程序的实例分享

    这篇文章主要介绍了使用PHP编写学校网站上新生注册登陆程序的实例分享,只包括简单的数据库信息录入和查询等步骤的一些关键点,需要的朋友可以参考下
    2016-03-03
  • Yii框架布局文件的动态切换操作示例

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

    这篇文章主要介绍了Yii框架布局文件的动态切换操作,结合实例形式分析了Yii框架控制器动态切换布局的相关实现技巧,需要的朋友可以参考下
    2019-11-11
  • PHP计算一年多少个星期和每周的开始和结束日期

    PHP计算一年多少个星期和每周的开始和结束日期

    这篇文章主要介绍了PHP计算每周的开始和结束日期,php实现计算一年多少周,同时计算出每一周的开始日期和结束日期,需要的朋友可以参考下
    2014-07-07
  • PHP生成带有雪花背景的验证码

    PHP生成带有雪花背景的验证码

    晚看到了chianren上的验证码效果,就考虑了一下,用PHP的GD库完成了类似功能 先成生背景,再把生成的验证码放上去
    2008-09-09
  • 利用PHP获取汉字首字母并且分组排序详解

    利用PHP获取汉字首字母并且分组排序详解

    这篇文章主要给大家介绍了关于如何利用PHP获取汉字首字母并且分组排序的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用php具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-10-10

最新评论