按顺序在数组中查找数组

2023-12-04

如何编码[find-array-in-array]功能?

伪代码

Haystack:

array(0=a, 1=b, 2=a, 3=b, 4=c, 5=c, 6=a, 7=b, 8=d, 9=c, 10=a, 11=b, 12=a, 13=b, 14=c);

Needle:

array(a, b, c);

Return:

array ( array (2, 3, 4), array(12, 13, 14) )

Desired: Haystack 中的钥匙与 Needle 相匹配。上面应该给出 2 个匹配项:

  1. 比赛 = 干草堆 2-4
  2. 比赛 = 干草堆 12-14

应该找不到"a b", "a b d" nor "c a b"ETC。, 仅 Needle 中每个值的实例 - 按指定顺序。

我想让它成为一个函数,这样我就可以重复运行它(我有很多这样的模式)。

我尝试过使用嵌套的 foreach 来做到这一点,并用计数器等让自己发疯。 我到了一定程度,无法区分匹配和不匹配。 (惊讶没有内置功能?in_array and array_intersect好像只适合个人价值,不适合收藏?)


$haystack = array('a','b','a','b','c','d','a','b','c');
$needle = array('a','b','c');

$CountH = count($haystack); echo $CountH."<br/>";
$CountN = count($needle); echo $CountN."<br/>";
$matches ='';
foreach ($haystack as $key1=>$haystackval){
    foreach ($needle as $key2=>$needleval) {
        $fail = '0';
        //if (in_array($needleval, $haystack)) {
        if ($key2[$needleval] === $haystackval && $fail === '0') {
            echo "Got needleval - ".$needleval ."<br/>";
        } 
        else { $fail='1';
        }
    } 
}

我尝试创建这个功能;

function find_array_in_array($needle, $haystack) {
    $keys = array_keys($haystack, $needle[0]);
    $out = array();
    foreach ($keys as $key) {
        $add = true;
        $result = array();
        foreach ($needle as $i => $value) {
            if (!(isset($haystack[$key + $i]) && $haystack[$key + $i] == $value)) {
                $add = false;
                break;
            }
            $result[] = $key + $i;
        }
        if ($add == true) { 
            $out[] = $result;
        }
    }
    return $out;
}

$haystack = array('a', 'b', 'a', 'b', 'c', 'c', 'a', 'b', 'd', 'c', 'a', 'b', 'a', 'b', 'c');

$needle = array('a', 'b', 'c');

print_r(find_array_in_array($needle, $haystack));

Outputs;

Array
(
    [0] => Array
        (
            [0] => 2
            [1] => 3
            [2] => 4
        )

    [1] => Array
        (
            [0] => 12
            [1] => 13
            [2] => 14
        )

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

按顺序在数组中查找数组 的相关文章

  • Fortran 指针数组

    同样 Fortran 中的指针数组 好吧 我有一个派生类型 type t context pointer type t context pointer p ctx end type t context pointer 当我在主程序中执行以下
  • PHP 绑定“bigint”数据类型(MySQLi 准备好的语句)

    studentId 57004542323382 companyOfferId 7 sql INSERT INTO studentPlacement companyOfferId studentId VALUES if stmt db gt
  • 如何将 HTML 转换为 Markdown?

    我有一个类似 stackoverflow 的网站 有一个文本区域 人们可以在其中写答案 我用这个 PHP 库 http parsedown org 转换降价 我的意思是我使用该函数来转换 italic to i italic i inclu
  • zip 文件的校验和

    我目前正在开发一个工具 它上传一组文件 然后使用 md5 校验和将文件与上一批上传的文件进行比较 并告诉您哪些文件已更改 对于常规文件 这工作正常 但某些上传的文件是 zip 存档 即使其中的文件相同 它们几乎总是会发生变化 有没有一种方法
  • 在 Laravel 5 中截断表

    描述 我有一个充满测试数据的表 有时 我想清除它以获取新数据 我可以在 DBMS 应用程序中执行截断 例如MySQL 工作台 但我试图在我的应用程序中实现它 Goal 创建一个按钮 单击时截断数据库中的表 这是我的步骤 1 声明一条路线 R
  • 使用 php 在多维数组中按键排序[重复]

    这个问题在这里已经有答案了 可能的重复 在 PHP 中对多维数组进行排序 https stackoverflow com questions 2059255 sorting multidimensional array in php 如何在
  • 将 UUID 存储为 base64 字符串

    我一直在尝试使用 UUID 作为数据库键 我希望占用尽可能少的字节数 同时仍然保持 UUID 表示形式的可读性 我认为我已经使用 base64 将其减少到 22 个字节 并删除了一些尾随的 这些 对于我的目的来说似乎没有必要存储 这种方法有
  • 在哪里可以找到 Java 数组的源代码? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 在哪里可以找到java数组的源代码 Example double arr new double 20
  • 如何计算伽罗瓦域上的numpy数组?

    我想在伽罗华域 GF4 上使用 numpy 数组 所以 我将 GF4 类设置为数组元素 它适用于数组 整数计算 但不适用于数组 数组计算 import numpy class GF4 object class for galois fiel
  • .push() 将多个对象放入 JavaScript 数组中返回“未定义”

    当我将项目添加到beats数组然后console log用户时 我得到了数组中正确的项目数 但是当我检查 length 时 我总是得到 1 尝试调用索引总是会给我 未定义 如下所示 Tom beats 1 我想我错过了一些明显的东西 但这让
  • WordPress 分页自定义帖子类型

    我有一个名为 新闻 的页面 使用页面模板page newslist php 它应该显示来自自定义帖子类型 也称为新闻 的帖子 我意识到两者具有相同的名称会导致问题 因此在注册自定义帖子类型时 我进行了重写以将其与页面区分开来 rewrite
  • Joomla 页面中的自定义 php 代码

    我正在尝试将 Joomla 1 5 9 页面中的表源从页面中的硬编码 html 更改为从 SQL 数据库获取信息 执行此操作的正确方法是什么 创建一个新的模型或组件并以某种方式在页面中使用它 我找到了这些 http docs joomla
  • 如何获得n个具有不同元素数量的数组的所有可能组合?

    我有一些在编程时未知的数组数量 也许是 3 或 4 或 7 每个数组都有一些元素 即 a 1 2 3 4 b 6 7 5 2 1 c 22 4 6 8 4 8 5 4 d e f g 我想通过从每个数组中采样一个数字来获得所有可能的组合 例
  • 按第一列排序二维数组,然后按第二列排序

    int arrs 1 100 11 22 1 11 2 12 Arrays sort arrs a b gt a 0 b 0 上面的数组已排序为 1 100 1 11 2 12 11 22 我希望它们按以下方式排序a 0 b 0 首先 如果
  • PHP 数组通过 JSON 转为 jquery 数组

    我有点困惑为什么以下不起作用 get php
  • 检查条件并通过 Zend 中的 Regex 识别 url 中的模式

    我正在实现 Zend Regex 路由 并且必须对 url 执行多次检查 例如 如果这是我的网址 http localhost application public index php module controller action 这是
  • 如何计算特定字符在字符串中出现的次数

    我正在尝试创建一个函数来查看数组中的任何字符是否在字符串中 如果是 有多少个 我尝试计算每一种模式 但是太多了 我尝试使用 Python 中的 in 运算符的替代方案 但效果不佳 function calc fit element var
  • 从支付网关重定向回时用户会话丢失

    我已将 Cyber source 配置为我的支付网关 我能够导航到 cybersource 并进行付款 并能够成功重定向回该网站 我也可以取消付款并重定向回我的网站 我收到来自支付网关的响应 但是 用户在从支付网关重定向回来时会被注销 我正
  • Fortran 子例程返回错误值

    嘿 我正在开发一个 Fortran 程序 遇到了一个奇怪的问题 当我尝试在调用特定子例程之前直接输出数组的某些值时 我得到了正确的值 然后 我尝试在启动子例程时输出同一数组的一些值 它们都是 0 我最终在子例程之后输出数组的值 并且这些值回
  • 比较数组中的文件、从文本文件中删除行、函数、日志记录

    所以我创建了这两个数组 Approved Shares 和 Current Shares Reads Approvedshare txt and makes the txt file into an array public objFSO

随机推荐

  • 第谷无法从不同的 Reactor 构建中解析从产品到 Eclipse 功能的引用

    我有两个反应堆构建 第一个构建了一些捆绑包和相应的功能 成功后clean install该功能位于我本地的 Maven 存储库中 第谷还生成了 p2 元信息 p2artifacts xml and p2metadata xml 第二个版本包
  • 如何在 Powershell 消息框中获取计时器?

    我试图在我用 PS Forms 创建的消息框中显示一个计时器 我想要这样的东西 1 秒后显示 您的电脑将在 10 秒后关闭 您的电脑将在 9 秒后关闭 您的电脑将在 8 秒后关闭 等等 希望你能帮我 我没有看到刷新消息框中文本的方法 如果我
  • Linux编译 |入口点无效

    我正在编译一个linux内核使用 mipsel 工具链 一切工作正常 除了最后一点指出无效的入口点 sh 0 Can t open arch mips boot tools entry rm f arch mips boot vmlinux
  • 从 asp.net 中的 gridview 获取选中的行

    我有一个GridView在 ASP net 中我有一个CheckBox柱子 用户可以切换CheckBox 现在 我想要的是 当用户单击按钮时 来自GridView哪里的CheckBox被选中应该显示 在另一个按钮上 应该显示相反的状态 我不
  • ios iPhone模拟器是否导致内存使用分析膨胀?

    我正在尝试在我的应用程序中处理一个大文本文件 我知道我要小心读取数据时消耗的内存量 一旦读取了一条数据 应用程序就不需要保留该数据 感谢 Martin R 和这篇文章逐行读取文件 URL帮助我开始努力 我正在尝试监视我的应用程序在读取大数据
  • 图像显示时改变形状

    我正在尝试显示此图像 因为我的目录中有此图像 但我用这段代码显示它 Mat img imread D vig png imshow image img waitKey imwrite D img jpg img 同一张图片显示如下 它出什么
  • Java VM 如何决定 user.dir 系统属性的值?

    我正在运行一个简单的 Java 程序 其目录结构如下 MyProject A project in my Eclipse IDE src Hello java 在 Hello java 中 我正在打印 user dir 系统属性的值 Sys
  • ASP.Net Core 生成了太多 cookie,我的应用程序无法处理

    我有一个测试应用程序 用于测试与 WSO2 Identity Server IDP 的集成 当它单独运行时 它工作得很好 它使 AspNetCore Antiforgery饼干和一个 AspNetCore Cookies曲奇饼 防伪 coo
  • 如何使用 C# 向 Sql Server 2005 数据库插入和读取 pdf 文件

    如何将pdf文件插入sql server 2005并从sql server读取pdf文件 如果您有兴趣使用数据库进行文件存储 请查看这篇来自 4guysfromrolla 的文章 它是面向网络的 但找到您需要的内容应该没有问题
  • 如何在bash脚本中读取csv文件到数组

    我编写了以下代码 将我的 csv 文件 具有固定的列数 但没有固定的行数 作为数组读入我的脚本中 我需要它是一个 shell 脚本 usernames x1 x2 x3 x4 username1 5 5 4 2 username2 6 3
  • 确定列表是否具有相等的连续元素

    我试图确定一个大列表是否具有相同的连续元素 那么我们说 lst 1 2 3 4 5 5 6 在这种情况下 我会返回 true 因为有两个连续的元素lst 4 and lst 5 是相同的值 我知道这可能可以通过某种循环组合来完成 但我想知道
  • 反转链表 C++ [重复]

    这个问题在这里已经有答案了 可能的重复 无法反转链表 我正在尝试反转链接列表 void LinkedList reverseList Node next head Node prev 0 while next 0 Node tmp next
  • Android使用ArrayList向多个联系人发送短信

    我正在编写一个向多个联系人发送短信的应用程序 联系人号码存储在ArrayList 从另一项活动收到 我无法使用这个ArrayList将多个联系人传递到内置 SMS Android 应用程序 这是代码 ArrayList
  • 如何在不触发文本观察器的情况下更改 EditText 文本?

    我有一个EditText其上带有客户文本观察器的字段 在一段代码中 我需要更改我使用的 EditText 中的值 setText whatever 问题是一旦我做出改变afterTextChanged方法被调用 这创建了一个无限循环 如何更
  • PHP 会话在页面之间丢失数据

    我正在尝试为我的网站设置一个登录系统 需要有人登录才能发帖 我已经用会话设置了它 它在我的本地主机上运行得很好 但在服务器上却不起作用 我在某些页面上设置了 print r session 以查看数据丢失的位置 在 checklogin p
  • Haskell Servant 从处理程序获取当前路由/URL

    我想获取与我的处理程序相对应的当前路线 这是我的服务器的模型 仅供参考 type ServerAPI route01 gt Get HTML Text lt gt route02 gt subroute gt Get HTML Text l
  • 以角度形式保留 http 调用的顺序

    我正在尝试使用我在此处找到的几种方法来解决我面临的订单问题SO没有成功 我有一个方法 我正在为数组加载一些数据leaflet layers private loadSelectedTileLayersCapabilities void le
  • 在示例 Android 应用程序中使用解析 SDK 库时出现错误

    在这里 我正在使用名为 3rd party sdk 的东西做一些事情parse sdk它为Android平台提供了一些API 我经历过这个link并尝试为此解析 sdk 做一些示例工作 但是在完成该链接上提到的所有步骤之后 我无法运行此测试
  • 克隆对象不可删除

    我正在尝试使用 Jquery 克隆可删除对象 但克隆的对象不可删除 document ready function input value Add click function e e preventDefault div field la
  • 按顺序在数组中查找数组

    如何编码 find array in array 功能 伪代码 Haystack array 0 a 1 b 2 a 3 b 4 c 5 c 6 a 7 b 8 d 9 c 10 a 11 b 12 a 13 b 14 c Needle a