开发者社区> 技术小胖子> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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基础篇-二维数组排序 array_multisort
原文:php基础篇-二维数组排序 array_multisort 对2维数组或者多维数组排序是常见的问题,在php中我们有个专门的多维数组排序函数,下面简单介绍下: array_multisort(array1,sorting order, sorting type,array2,array3..)是对多个数组或多维数组进行排序的函数。
1083 0
PHP 二维数组根据某个字段排序
原文:PHP 二维数组根据某个字段排序 要求:从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条。 遇到这个要求的时候就不是 ORDER BY 能解决的问题了。因此翻看 PHP 手册查找到了如下方法,做此笔记。
930 0
PHP处理MySQL关联查询
什么关联查询? a)在MySQL中的Select语句中,我们经常会有复杂的业务需要使用join子语句,包括left join、right join、inner join、left outer join、right outer join、full join b)那么使用以上几种方式进行表查询的时候、对数据库的压力是很大的,怎么个大法呢,我们来测试一下: i.首先我们先搞一些数据 class表200w数据 user表 40w数据 ii.我们接下来查询15个班级下面的所有学生
68 0
MacOs M1 芯片分布式搭建 Nginx+PHP+MySQL和多站点域名访问
一、安装Nginx 问题:Mac 在安装nginx之前记得把原本的apache2给卸载删除了,要不然后期会出现端口号被占用,或者有时候nginx用不了
129 0
PHP 和 MySQL 的合作方式
PHP 和 MySQL 的合作方式
38 0
PHP中MySQL操作
本次使用的demo是MySQL的示例数据库employees,点击下载地址,注意在导入的时候,在employees.sql文件中,将source改成你当前的目录。
39 0
centos下 Apache、php、mysql默认安装路径
apache: 如果采用RPM包安装,安装路径应在 /etc/httpd目录下 apache配置文件:/etc/httpd/conf/httpd.conf Apache模块路径:/usr/sbin/apachectl web目录:/var/www/html 如果采用源代码安装,一般默认安装在/usr/local/apache2目录下 php: 如果采用RPM包安装,安装路
3117 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
复杂PHP系统性能瓶颈排查及优化
立即下载
基于异构计算资源的编译优化
立即下载
让机器逐渐习得法律认知能力
立即下载