检查数组 1 的值是否存在于数组 2 的键中 - PHP

阿尤什·达哈尔

我有两个数组:

$arr1 = Array
(
    [0] => Apple
    [1] => Ball
    [2] => whale
    [3] => Dog
    [4] => cat
)

$arr2 = Illuminate\Support\Collection Object
(
    [items:protected] => Array
        (
            [Red apple] => 27
            [tball] => 28
            [cat] => 29
            [Dog] => 30
            [blue ball] => 31
        )
    ]
)

在这里,我想检查第一个数组的值是否与('% like %')第二个数组的任何键匹配我想就这个例子来解释一下。

在这里,您可以看到$arr1is 的第一个值Apple,现在您可以Red apple在 arr2 上看到这意味着这应该被视为匹配。但是,Ball不应与 匹配,tballBall应与 匹配blue ball

如果它确实找到了匹配项,那么我希望将该值存储在$result数组中,如果没有匹配的值,则$result数组的特定索引必须为空。在这种情况下,我想要确切的结果:

$result= Array
(
    [0] => 27
    [1] => 31
    [2] => 
    [3] => 30
    [4] => 29
)

沙盒php

安德烈亚斯

查看您的链接,实际数组看起来要大得多,我认为可以进行双向匹配。
因此,我对要按类别分组的代码的输出略有不同。
如果有两个匹配项,我不确定该怎么办,应该检索哪个数字?
我还使用了 preg_grep,它在数组上使用正则表达式而不是循环数组。
和 preg_quote 以确保正则表达式字符不会干扰正则表达式。

$arr1 = Array('Apple', 'Ball', 'whale', 'Dog', 'cat');
$arr2 = Array('Red apple' => 27, 'tball' => 28, 'cat' => 29, 'Dog' => 30, 'blue ball' => 31, 'dog food' => 25, 'green apple' => 111);
$keys = array_keys($arr2);

foreach($arr1 as $find){
    $matches = preg_grep("/\b" . preg_quote($find) . "/i", $keys);
    foreach($matches as $key => $word){
        $result[$find][] = $arr2[$word];
    }
}

var_dump($result);

输出:

array(4) {
  ["Apple"]=>
  array(2) {
    [0]=>
    int(27)
    [1]=>
    int(111)
  }
  ["Ball"]=>
  array(1) {
    [0]=>
    int(31)
  }
  ["Dog"]=>
  array(2) {
    [0]=>
    int(30)
    [1]=>
    int(25)
  }
  ["cat"]=>
  array(1) {
    [0]=>
    int(29)
  }
}

https://3v4l.org/es2Gt

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何检查数组1中每个值的顺序,是否存在于数组2中并删除?

如何检查数组键是否存在于php中的多维数组中

如何检查数组键是否存在于已定义的常量数组中[PHP 7 define()]

PHP值存在于数组中

检查字符串数组 1 项是否存在于字符串数组 2 中并返回 bool

如何匹配字母并检查值是否存在于数组中或不使用 PHP

PHP数组如何检查所有数组值是否存在于其他数组中

检查值是否存在于多维数组中

PHP - 检查数组是否存在于具有精确匹配对的多维数组中

如何获取数据是否存在于PHP数组中

Javascript:检查键是否存在于对象数组中

如何检查键是否存在于对象数组中

如何检查一个单词是否存在于 php 的数组中?

PHP 检查 foreach 如果数组存在于 txt 文件中并返回布尔值

检查键是否存在于数组中并替换其值

PHP数组键存在于字符串中

如何使用awk获取存在于file1中而不是file2中的已创建数组的值?

如何在jquery / javascript中检查数组中的值是否存在于数组中

php检查2级多维数组中是否存在值

确定值是否存在于关联数组中

检查来自后端数组的输入字段值是否存在于数组中

检查值是否存在于集合或数组中,如果不存在,则将其添加

如何检查数组中的时间范围是否存在于 PHP 中的两个时间变量之间

检查元素是否存在于数组中

检查属性是否存在于数组中

检查项目是否存在于数组React中

如何检查元素是否存在于数组对象中

检查对象是否存在于数组中

如何检查给定的int是否存在于数组中?