• 论php数组合并


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

    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);

  • 相关阅读:
    JavaScript-4.2函数,变量作用域---ShinePans
    2019-8-31-C#-简单读取文件
    2019-8-31-C#-简单读取文件
    2019-8-31-C#-大端小端转换
    2019-8-31-C#-大端小端转换
    2019-6-11-C#-标准性能测试
    2019-6-11-C#-标准性能测试
    2018-2-13-win10-uwp-右击选择-GridViewItem-
    2018-2-13-win10-uwp-右击选择-GridViewItem-
    2019-8-31-NuGet-如何设置图标
  • 原文地址:https://www.cnblogs.com/apeandcat/p/6228557.html
Copyright © 2020-2023  润新知