在另一个数组的每隔一个元素之后插入一个数组中的元素(一次一个)(不均匀拉链)

2024-05-05

合并两个数组的优雅方法是什么,使得生成的数组具有第一个数组中的两个项目,后跟第二个数组中的单个项目,以这种方式重复?

$array1 = ['A1', 'A2', 'A3', 'A4', 'A5']; // potentially longer
$array2 = ['B1', 'B2', 'B3', 'B4', 'B5']; // potentially longer

期望的结果:

['A1', 'A2', 'B1', 'A3', 'A4', 'B2', 'A5', 'B3', 'B4', 'B5']

我正在尝试使用for具有多个计数器的循环,但我不知道数组长度是多少。我很好奇:有更好的方法吗?

这是我目前正在做的事情的简化版本:

$x = 0, $y = 0;
for ($i = 0; $i < $total_num_blocks; $i++) {
    if ($i % 3) {   // if there's a remainder, it's not an 'every 3rd' item
        $result[$i] = $projects[$x++];
    } else {
        $result[$i] = $posts[$y++];
    }
}

无论 $a 和 $b 数组大小如何,此示例都将起作用。

<?php 

$a = ['A1', 'A2', 'A3', 'A4', 'A5'];
$b = ['BB1', 'BB2', 'BB3', 'BB4', 'BB5'];

for ($i = 0; $i < count($b); $i++) {
    array_splice($a, ($i+1)*2+$i, 0, $b[$i]);
}

echo "<pre>" . print_r($a, true) . "</pre>";

这个例子的输出是:

Array
(
    [0] => A1
    [1] => A2
    [2] => BB1
    [3] => A3
    [4] => A4
    [5] => BB2
    [6] => A5
    [7] => BB3
    [8] => BB4
    [9] => BB5
)

Warning:密钥不会被保留!

这是 PHP 5.4.x 代码,如果没有,请将 $a 和 $b 变量中的 [] 替换为 array() 。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在另一个数组的每隔一个元素之后插入一个数组中的元素(一次一个)(不均匀拉链) 的相关文章

  •  
    标记内删除

    我制作了简单的 BBCode 脚本 一切正常 但后来我使用了一个 javascript 库来美化我的代码 pre pre 现在我面临的唯一问题是 br 每行代码后面的标签 pre pre tags 所以问题是我怎样才能删除 br 标记哪些在
  • PHP 会话不适用于游戏

    我正在尝试模仿一款名为 SKUNK 用骰子玩 的游戏来完成一项作业 我无法让会话正常工作 这是我第一次使用 PHP 我还被告知无需会议即可完成 这是我的代码
  • 如何在响应ajax codeigniter后停止执行其他控制器

    我想知道如何在响应输出 json 数据后停止执行函数和涉及的其他控制器 就我这里的情况而言 我只是打电话test 函数于dashboard控制器 In dashboard构造函数将执行MY Login library In MY Login
  • 如何使用 php 发送服务器错误响应?

    一旦用户点击删除按钮我的 jQuery 脚本要求服务器删除所选项目 现在我想要我的php发送成功或错误响应的脚本 是否有可能触发错误回调万一该项目无法删除 Thanks 我的 jQuery 代码 ajax type post url myA
  • 扩展蓝图类?

    我想覆盖timestamps 函数中发现Blueprint班级 我怎样才能做到这一点 e g public function up Schema create users function Blueprint table table gt
  • 为什么我需要结束 ob_start()?

    php 文档建议我应该用 ob end flush 结束每个 ob start 我在网站的每个页面上使用一个 只是为了允许我在应用程序中的任何位置使用 firephp 日志方法 该应用程序运行良好 但我想知道是否有任何我不知道的东西可能有害
  • 使用 preg_replace 仅替换第一个匹配项

    我有一个结构类似于以下的字符串 aba aaa cba sbd dga gad aaa cbz 该字符串每次都可能有点不同 因为它来自外部源 我只想替换第一次出现的 aaa 但其他人则不然 是否可以 可选的第四个参数预替换 http php
  • 如何在原则 2 迁移中删除外键

    我想在原则 2 迁移中删除外键 但没有 dropForeignKeyConstraint 有谁知道怎么丢掉吗 public function down Schema schema table schema gt getTable table
  • 学说迁移后备

    我们正在使用原则迁移 当迁移包含多个操作并且其中一个操作失败时 通常会出现问题 例如 如果迁移添加了 5 个外键 其中第 5 个失败 而字段长度不同 则修复字段错误并重新生成迁移不会not修复整个问题 而现在出现一个与 4 个密钥已存在有关
  • 为什么 iconv 在 php:7.4-fpm-alpine docker 中返回空字符串

    给出以下代码
  • 在 PHP 中撤销 Google 访问令牌

    正如标题所示 我想以编程方式撤销授予的访问令牌 即在 PHP 中 我发现这个他们的网站 https developers google com identity protocols OAuth2WebServer tokenrevoke 但
  • 在 PHP 中使用 phpseclib 时出现 RSA 问题

    我正在尝试在 phpseclib 中使用 RSA 实现 我认为在函数中执行一次代码并重新使用该函数会更容易 当我尝试向代码发送短信时 我收到一条错误消息 提示 解密错误 测试还让我意识到每次代码运行时密文都是不同的 所以我显然在那里做错了什
  • PHP preg_filter 返回意外的长值

    尝试在 Woocommerce 中删除标签并过滤值 但无法以正确的格式获取它 有东西有腥味 我正在使用WC gt cart gt get cart subtotal 来检索该值 在此示例中 我的值是 2 429kr 原始返回值是 span
  • 为什么这两种不同的构造数组的方式会产生不同的行为?

    当我以两种不同的方式构造一个 2 元素数组时 例如a and b 当我将一个元素添加到内部数组之一时 我得到两个不同的结果 这也会发生在append 根据构建每个之后的输出 我希望它们完全相同 julia gt a 2 element Ar
  • 表单计算器脚本基本价格未加载 OnLoad

    我的表单中有一个计算器来计算我的下拉选项选择 function select calculate on change calc input type checkbox calculate on click calc function cal
  • PHP HEREDoc (EOF) 语法在 Sublime Text 3 上突出显示与正斜杠的差异

    我不熟悉 Sublime Text 3 如何使用语法突出显示 例如 如果它纯粹依赖于主题 或者它内置于主题运行的标准中 但就我而言 使用 PHP 的 HERE 文档和转发存在一些语法突出显示差异斜线 一旦出现正斜杠 ST3 就会认为以下所有
  • php 错误 fopen(): 文件名不能为空

    发送带有附件代码的电子邮件工作正常 最近我们已将文件传输到另一个托管服务器 idk 发生了什么 它显示以下错误 警告 fopen 第 106 行 home hugerecruitmetnt public html validatecva p
  • Doctrine EntityManager 清除嵌套实体中的方法

    我想用学说批量插入处理 http doctrine orm readthedocs org en latest reference batch processing html为了优化大量实体的插入 问题出在 Clear 方法上 它表示此方法
  • CURL 中的 data-urlencode 是什么意思?

    我搜索了很多个小时试图弄清楚 php curl 中的 data urlencode 是什么 我尝试过这个 但我认为这是不对的 xmlpost object1 file https www lob com goblue pdf 在文档中是 d
  • Repa 数组上的并行 mapM

    在我最近的work https github com bgamari mixture model with Gibbs sampling 我一直在充分利用RVar http hackage haskell org packages arch

随机推荐

  • C 警告函数调用中缺少标记

    这是我的警告 Missing sentinel in function call 我怎样才能删除它 我正在使用 linux 和 gcc 编译器 看来您可能没有终止数组声明NULL 如果没有 null 您可能会遇到一些内存怪异 因为运行时将不
  • 捕获 System.Exception 总是不好的做法吗?

    请考虑下面的代码 它抛出三个不同的异常 即 System Configuration ConfigurationErrorsException System FormatException and System OverflowExcept
  • C/C++ 中的最小二乘回归

    如何在 C C 中实现因子分析的最小二乘回归 the黄金标准是LAPACK http www netlib org lapack lug node27 html 你特别想要xGELS
  • 如何注销多个非当前用户的会员用户?

    我正在使用属于 MVC2 默认项目一部分的 MembershipProvider 我希望能够获取用户名列表 注销用户 并在需要时销毁他们的会话 我能想到的最接近的是 foreach string userName in UserNames
  • 如何对表的选定列进行 mysql 转储

    我有一个要求 我必须仅对表的一列进行 mysql 转储 由于该表有太多列 我不想转储整个表 我必须将表的转储从一台服务器转移到另一台服务器 知道我该怎么做吗 如果您想获取包含架构的 mysql 转储 可以按照以下步骤完成 创建临时表 cre
  • PHP Money_format(); £ 符号不是 GBP

    我不知道如何获取货币符号 目前我正在使用 setlocale LC MONETARY en GB money format i 1000 这给了我输出 GBP1 000 但我想要 1 000 我已经查看了 PHP 手册 但没有多大帮助 有任
  • Pinterest 喜欢自定义 GridView

    我是 Android 新手 我正在寻找网格视图的逻辑 例如为 iPhone 构建的 pinterest homescreen 应用程序 一个大号 图像来自服务器 我需要以以下形式显示并具有分页效果 即在滚动上加载图像 如果可以的话请回复 我
  • 是否有将二进制数据打包成 UTF-16 字符串的标准技术?

    在 NET中 我有任意二进制数据存储在byte 例如图像 现在 我需要将该数据存储在string 旧 API 的 注释 字段 有没有标准技术packing将此二进制数据转换为string 我所说的 打包 是指对于任何相当大且随机的数据集 字
  • 给定列名称和替换的字符向量重命名多个列[重复]

    这个问题在这里已经有答案了 虽然这很容易用基本 R 或setnames in data table or rename in dplyr0 5 自从rename 已被弃用 我找不到一种简单的方法来做到这一点dplyr 0 6 0 下面是一个
  • Postgres 在转换时函数错误/失败时返回空值

    我正在尝试转换text价值观timestamp价值观 对于下表称为a id c1 1 03 03 2000 2 01 01 2000 3 12 4 1990 4 12 Sept 2011 5 12 1 1999 12 33 12 6 24
  • 如何在显示项目之前为 RecyclerView 高度设置动画

    我怎样才能 或者我应该说什么时候可以在显示项目之前对 recyclerView 高度进行动画处理 我可以在 onMeasure 中获得最终高度 但项目总是出现太快并且动画不起作用 关于如何让这个动画发挥作用有什么想法吗 None
  • 使用 jar 外部的配置启动 .jar,但能够从任何当前目录执行此操作

    我一直在努力解决一个特定的问题 我在 jar 文件中有一个 Java 程序 并且在 jar 之外有一个 lib 目录和一个 config 目录 但与 jar 本身所在的目录位于同一目录中 我正在尝试参考config foo config从代
  • C# 泛型中的通配符等效项

    假设我有一个通用类 如下所示 public class GeneralPropertyMap
  • 需要在 Android 应用程序卸载期间执行一些活动

    我正在开发一个应用程序 如果用户卸载该应用程序 我需要登录该应用程序 所以我正在遵循这种方法应用程序如何检测到它将被卸载 https stackoverflow com questions 18692571 how it works war
  • 卷曲 -GET 和 -X GET

    Curl 提供了一系列不同的带有 X 前缀的 http 方法调用 但也提供了不带 X 的相同方法 我两种都试过了 但我似乎无法弄清楚其中的区别 有人可以快速向我解释这两种操作有何不同吗 默认情况下 您使用curl 而无需明确说明要使用哪种请
  • 关闭网站的 IE 8 兼容模式

    我的公司使用IE8作为默认浏览器 并且默认为所有内联网站点设置兼容模式 我正在构建一个在关闭兼容模式时可以工作的 Intranet 站点 我正在使用 Reset css 和几个开源 JavaScript 程序 例如数据表 我想做的是强制关闭
  • 如何使用 Google Drive API 通过服务帐户访问域中的共享文件?

    我一直在尝试从 Python 3 7 脚本访问有关 Google Shared Drive 文件的一些简单信息 上次修改共享云端硬盘上的 Google 表格文件的时间 我创建了一个服务帐户在 GCP Drive API 菜单中 它可以通过
  • CakePHP Facebook 集成与 CakePHP-Facebook-Plugin 的注销问题

    我正在寻找一种方法CakePHP Facebook 插件 https github com webtechnick CakePHP Facebook Plugin让用户退出我的应用程序 但不让他们退出他们自己的 Facebook 如果我调用
  • XSD 格式

    该 XSD 部分来自 http www iana org assignments xml registry schema netconf xsd http www iana org assignments xml registry sche
  • 在另一个数组的每隔一个元素之后插入一个数组中的元素(一次一个)(不均匀拉链)

    合并两个数组的优雅方法是什么 使得生成的数组具有第一个数组中的两个项目 后跟第二个数组中的单个项目 以这种方式重复 array1 A1 A2 A3 A4 A5 potentially longer array2 B1 B2 B3 B4 B5