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

2015-01-24信息快讯网

在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 如何获取二维数组中某个key的集合
PHP 二维数组根据某个字段排序的具体实现
php数组中包含中文的排序方法
PHP中数组的分组排序实例
将二维数组转为一维数组的2种方法
不使用php api函数实现数组的交换排序示例
php根据年月获取季度的方法
php定义数组和使用示例(php数组的定义方法)
php断点续传之如何分割合并文件
php数组合并的二种方法
PHP将两个关联数组合并函数提高函数效率
3个PHP多维数组转为一维数组的方法实例
根据ip调用新浪api获取城市名并转成拼音
PHP根据IP判断地区名信息的示例代码
php根据操作系统转换文件名大小写的方法
php ZipArchive压缩函数详解实例
php foreach循环中使用引用的问题
php二维数组排序详解
php二维数组用键名分组相加实例函数
php合并js请求的例子
php获取数组长度的方法(有实例)
php数组转换js数组操作及json_encode的用法详解
php获取目录所有文件并将结果保存到数组(实例)
PHP和JavaScrip分别获取关联数组的键值示例代码
PHP实现根据浏览器跳转不同语言页面代码
table标签的结构与合并单元格的实现方法
基于PHP创建Cookie数组的详解
解析php根据ip查询所在地区(非常有用,赶集网就用到)
php获取$_POST同名参数数组的实现介绍
解析PHP将对象转换成数组的方法(兼容多维数组类型)
探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解
php缩放图片(根据宽高的等比例缩放)实例介绍
©2014-2024 dbsqp.com