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

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

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

方法一:

     function cross_merge_array($arr1, $arr2)
{
$arr1 = array_values($arr1);
$arr2 = array_values($arr2);
$count = max(count($arr1), count($arr2));
$arr = array();
for ($i = 0; $i < $count; $i++) {
if ($i < count($arr1)) $arr[] = $arr1[$i]; // 判断,避免下标越界
if ($i < count($arr2)) $arr[] = $arr2[$i]; // 判断,避免下标越界
}
return $arr;
}

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

方法二:

 function cross_merge_array($arr1, $arr2)
{
$size = count($arr1) > count($arr22) ? count($arr1) : count($arr2); //取出元素最多的数
$arr = array();
for ($i = 0; $i < $count; $i++) {
   if ($i < count($arr1)) {
array_push($arr, $arr1[$i]); //将数组压入新的变量
} if ($i < count($arr2)) {
array_push($arr, $arr2[$i]);//将数组压入新的变量
}
}
return $arr;
}

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

其实原理都一样:

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

最新文章

  1. LCD如何显示图像
  2. UHF桌面式发卡器
  3. 数据库表被锁表,select会等待。
  4. 认真学习shell的第一天-数学运算
  5. Django Navi 重用
  6. linux测试题
  7. Mysql规范和使用注意点(转)
  8. server-send event object
  9. Android_CodeWiki_04
  10. OAuth2.0认证过程
  11. Java 9 揭秘(16. 虚拟机栈遍历)
  12. ubuntu16.04搭建ftp服务器
  13. Jmeter 相关资源
  14. JavaScript标准库之 ---- &#160;Object
  15. ceph crush 之 crush_do_rule
  16. Chapter 2 Open Book——26
  17. webpack中配置Babel
  18. 中间件安全加固之Jboss
  19. js(window.open)浏览器弹框居中显示
  20. 跟我学算法-吴恩达老师(超参数调试, batch归一化, softmax使用,tensorflow框架举例)

热门文章

  1. 中国剩余定理 (POJ 1006)
  2. windows 10 下配置安装node.js
  3. python 读取hive数据
  4. day03_雷神_文件操作
  5. 在Delphi中处理word文档与数据库的互联 1
  6. WPF如何设置Image.Source为资源图片
  7. 配置文件springmvc.xml
  8. Java-String类型的参数传递问题
  9. LOJ#3092. 「BJOI2019」排兵布阵(递推)
  10. 题解 P5091 【【模板】欧拉定理】