博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
论php数组合并
阅读量:7011 次
发布时间:2019-06-28

本文共 1739 字,大约阅读时间需要 5 分钟。

注:尽量不要在循环中操作数据库。

array_merge():一个神奇的方法

1.两个一维数组合并成一个一维数组

   $a = array('morning','afternoon','night');

   $b = array('breakfast','lunch','dinner');

   (1)以$a中的数组元素为键名,以$b中的数组元素为键值而形成的一个新数组。

          $c = array_combine($a,$b);

   (2)将$a中与$b中键值相同的数组元素剔除,仅保留$a中不同的数组元素。也就是说返回差集。

          $c=array_diff($a,$b);

  

    (3)将$a中与$b中键名和键值同时相同的数组元素剔除,仅保留$a中不同的数组元素,也就是说返回差集数组。        

         $a = array('morning','afternoon','night');

         $b = array('breakfast','lunch','night');
         $c=array_diff_assoc($a,$b);
         print_r($c);

输出结果为:

     (4)将$a中与$b中键名相同的数组元素剔除,仅保留$a中不同的数组元素,也就是说返回差集数组。

          $c=array_diff_key($a,$b);

         空数组。

     (5)将$a中与$b中键名和键值同时相同的数组元素剔除,仅保留$a中不同的数组元素,也就是说返回差集数组,然后使用用户自定义函数比较此差集数组中的键名,对数组重新排序。

     (6)将$a中与$b中键名相同的数组元素剔除,仅保留$a中不同的数组元素,也就是说返回差集数组,然后使用用户自定义函数比较此差集数组中的键名,对数组重新排序。

            $a = array('morning','afternoon','night','today','yesterday','tomorrow');

            $b = array('breakfast','lunch','night');

            $c=array_diff_ukey($a,$b,function($a,$b){
              if($a==$b)
                 return 0;
             return ($a>$b)?-1:1;
           });
           print_r($c);

      (7)将$a中与$b中键值相同的数组元素返回,键名为$a中对应的数组键名。(或者是更多数组,返回的是共有的交集)

             $a = array('morning','afternoon','today','night','yesterday','tomorrow');

             $b = array('breakfast','lunch','night');
             $c = array_intersect($a,$b);
             print_r($c);

     (8)将一个或多个数组合并为一个数组。

            1.如果两个或多个数组元素有相同的键名,则最后的元素会覆盖其他元素。如果输入的数组键名是整数,则该函数将返回带有整数键名的新数组,其键名以0开始进行重新索引。

$a = array('sun'=>'阳光','moon'=>'月光');

$b = array('dog'=>'狗狗','cat'=>'小猫');

$c = array_merge($a,$b);
print_r($c);

$a = array('sun'=>'阳光','moon'=>'月光','守望'=>'麦田');

$b = array('dog'=>'狗狗','cat'=>'小猫','守望'=>'先锋');
$c = array_merge($a,$b);
print_r($c);

          2.array_merge_recursive() 不会进行键名覆盖,而是将多个相同键名的值递归组成一个数组。

$a = array('sun'=>'阳光','moon'=>'月光','守望'=>'麦田');

$b = array('dog'=>'狗狗','cat'=>'小猫','守望'=>'先锋');
$c = array_merge_recursive($a,$b);
print_r($c);

 

转载于:https://www.cnblogs.com/apeandcat/p/6228557.html

你可能感兴趣的文章
不错的在线印章生成器网站
查看>>
Arduino控制LCD显示helloworld
查看>>
线程、任务和同步学习笔记(一)
查看>>
JavaScript this
查看>>
OpenJudge/Poj 1163 The Triangle
查看>>
POJ 3130 半平面交+模版改进
查看>>
Python基础二
查看>>
AndroidStudio -- AndroidStuido中找不到cache.properties文件
查看>>
nginx 无法访问root权限的文件内容
查看>>
进程和线程有什么区别?
查看>>
关于text-align无法居中的问题
查看>>
Here We Go(relians) Again
查看>>
Signal函数
查看>>
[Errno 14] PYCURL ERROR 7 - "couldn't connect to host"
查看>>
chrono
查看>>
hdu2586 lca模板(在线路径倍增)
查看>>
AscII表
查看>>
BASE64图片转字符串
查看>>
springboot-国际化
查看>>
C11中替代gets()的函数
查看>>