zoukankan      html  css  js  c++  java
  • php交叉合并数组

    如数组 array1 = array('a', 'b', 'c');

          array2 = array('1', '2', '3');

    希望能实现结果 array3 = array('a', '1', 'b', '2', 'c', '3'); 这种效果,

    方法一: 

     1     function cross_merge_array($arr1, $arr2)
     2     {
     3         $arr1 = array_values($arr1);
     4         $arr2 = array_values($arr2);
     5         $count = max(count($arr1), count($arr2));
     6         $arr = array();
     7         for ($i = 0; $i < $count; $i++) {
     8             if ($i < count($arr1)) $arr[] = $arr1[$i]; // 判断,避免下标越界
     9             if ($i < count($arr2)) $arr[] = $arr2[$i]; // 判断,避免下标越界
    10         }
    11         return $arr;
    12     }

    参考:https://segmentfault.com/q/1010000014216293

    方法二:

     1 function cross_merge_array($arr1, $arr2)
     2 {
     3      $size = count($arr1) > count($arr22) ? count($arr1) : count($arr2); //取出元素最多的数
     4      $arr = array();
     5      for ($i = 0; $i < $count; $i++) {
     6      if ($i < count($arr1)) {
     7               array_push($arr, $arr1[$i]); //将数组压入新的变量
     8          }
     9 
    10          if ($i < count($arr2)) {
    11               array_push($arr, $arr2[$i]);//将数组压入新的变量
    12          }
    13      }
    14      return $arr;
    15 }          

    参考:http://www.songlin51.com/archives/832.html

    其实原理都一样:

           都是以长度较长的作为遍历的基准,然后交叉插入新的数组中,在循环过程中需要判断是否会下标越界

  • 相关阅读:
    python3之Django内置模板标签和过滤器
    JavaScript(1)
    python3之Django基础篇
    CSS
    HTML
    python3之SQLAlchemy
    python3之memcached
    web服务器-nginx虚拟主机
    web服务器-nginx默认网站
    web服务器-Nginx下载限速
  • 原文地址:https://www.cnblogs.com/tommy-huang/p/9050161.html
Copyright © 2011-2022 走看看