php数组合并排序

简介:

例子:

 
  1. <?php 
  2. $a=array('a','b','c'); 
  3. $b=array('d','e','f'); 
  4. $c=array_combine($a,$b); 
  5. foreach($c as $k=>$value){ 
  6.     //echo $k.'<br />'; 
  7.     $d[]=$k.$value
  8.  
  9. $arr=array(1,5,3); 
  10. $arr01=array_combine($arr,$d);//注意每一个元素都不能为空,如果两个数组的元素个数不同,则该函数返回 false 
  11. print_r($arr01); 
  12.  
  13.  
  14. ksort($arr01);      //按索引正序排序  
  15. print_r($arr01); 
  16. ?> 

结果:

Array ( [1] => ad [5] => be [3] => cf )

Array ( [1] => ad [3] => cf [5] => be )

 


 

php的数组在这门语言里使用得非常多。数组的一些常见操作像split/explode,join/implode,排序 (sort,asort,ksort,arsort),两数组合并(array_combine),键值翻转(array_flip),当然还有比较复杂 的数组合并。
数组合并至少有4种形式。
1.第一种php数组合并方式(使用[]合并)

$a = array(1=>'a',2=>'b',3=>'c');
$b = array(1=>'d',2=>'e',3=>'f');

foreach($b as $v)
{
     $a[] = $v;
}
var_export($a);
得到

array (
1 => 'a',
2 => 'b',
3 => 'c',
4 => 'd',
5 => 'e',
6 => 'f',
)
这种方式的数组合并,新增元素的键值是在原来数字键值之上增加。
如果原来的键值不是数字的,那么新增元素的键值将从0开始。

2.第二种数组合并方式(使用array_unshift合并)

$a = array(1=>'a',2=>'b',3=>'c');
$b = array(1=>'d',2=>'e',3=>'f');

foreach($b as $v)
{
     array_unshift($a,$v);
}
var_export($a);
得到

array (
0 => 'f',
1 => 'e',
2 => 'd',
3 => 'a',
4 => 'b',
5 => 'c',
)
可以看到,使用array_unshift方式添加元素,每次都会在数组头部新增元素,并且这些元素的键值总是从0开始,整个数组的键将重新从0开始计算。
3.使用array_merge合并php数组

$a = array(1=>'a',2=>'b',3=>'c');
$b = array(1=>'d',2=>'e',3=>'f');
$a = array_merge($a,$b);
var_export($a);
运算结果是

array (
0 => 'a',
1 => 'b',
2 => 'c',
3 => 'd',
4 => 'e',
5 => 'f',
)
可以看到数组的键也被从0开始重新计算了。

4.使用+合并php数组

$a = array(1=>'a',2=>'b',3=>'c');
$b = array(1=>'d',2=>'e',3=>'f');
$a = $a+$b; // $a += $b;
var_export($a);
我们得到了令人惊讶的结果

array (
1 => 'a',
2 => 'b',
3 => 'c',
)
数组$b被忽略了。我们可以看到,如果数组$b中有和$a重复键值的元素,那么这些元素将被忽略。换言之:保留键值,如果有重复,以第一个数组中的键为准。

5.php数组合并两个数组(一个数组做键名,另一个做值)

有两个数组: $arry_a,$arry_b

合并为一个新数组:$arry_ab,要求$arry_a中的值为新数组的键名,$arry_b中的值为新数组相对应的值.

$array_ab=array_combine($arry_a,$array_b);
这是数组的PHP内置函数 ,函数括号中的前一个数组的值为新数组的索引,后一个参数的值为新数组的值




      本文转自许琴 51CTO博客,原文链接:http://blog.51cto.com/xuqin/952493,如需转载请自行联系原作者





相关文章
原生php实现列表接口+分页接口+排序接口组合使用+包括测试数据(不加任何封装)
原生php实现列表接口+分页接口+排序接口组合使用+包括测试数据(不加任何封装)
原生php实现列表接口+分页接口+排序接口组合使用+包括测试数据(不加任何封装)
|
3月前
|
SQL PHP 数据库
|
7月前
|
PHP
php数组随机排序
PHP中对数据进行随机排序
php案例:自己写个数组转换成对象 对象转换成数组的的功能出来吧
php案例:自己写个数组转换成对象 对象转换成数组的的功能出来吧
php案例:自己写个数组转换成对象 对象转换成数组的的功能出来吧
|
3月前
|
JSON PHP 数据格式
php 删掉空的数组 json数据. 空数据(false 0 ““ null)
php 删掉空的数组 json数据. 空数据(false 0 ““ null)
php 删掉空的数组 json数据. 空数据(false 0 ““ null)
|
9月前
|
存储 PHP
php使用数组存储用户数据进行登录的封装函数
php使用数组存储用户数据进行登录的封装函数
46 0
|
4月前
|
JSON PHP 数据格式
【PHP学习】—数组的定义和遍历(三)
【PHP学习】—数组的定义和遍历(三)
|
4月前
|
算法 小程序 PHP
PHP实现递归排序
在leetcode练习算法的时候,发现一个算法需要用到递归。 递归是个好东西,但是吧,一般不理解其精髓的,很难写出一个好的递归。 递归其实就是函数本身直接或者间接地调用自身的一种编程方法(我自己调用我自己~),也可以理解为有反复执行过程的一种方法,这个就与循环非常相似,但是递归调用的函数中必须要有终止条件,也就是一定
28 1