array_search与第一个键不匹配

时间:2019-07-18 12:04:01

标签: php arrays

如果数组1的项在数组2中,我必须查看数组并想看。

如果每个项目是数组1,我都会使用foreach来遍历我的array2并用array_search进行检查。

一切正常,除了array_search总是在第一个匹配键上返回false。第一个匹配键是数组2的哪个索引都没有关系。

我做了一些研究,但没有任何效果。

即使严格参数在我的代码中也不起作用。

$array1 = ["K", "L", "M"];
$array2 = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M"];

    foreach($array2 AS $data) {
        echo $data."<br>";

        if(array_search($data, $array1) ? "TRUE" : "FALSE" === false) {
            echo "TRUE<br>";
        }

        echo "<br>";
    }

以上示例的输出为:

A

B

C

D

E

F

G

H

I

J

K

L
TRUE

M
TRUE

如果我将array1更改为["B", "C", "D"],则输出为:

A

B

C
TRUE

D
TRUE

E

F

G

H

I

J

K

L

M

我做错了什么?

2 个答案:

答案 0 :(得分:1)

您需要像这样更改代码:

if(array_search($data, $array1) === false) {
   echo "false<br>";
}

输出:-https://3v4l.org/VgRFdhttps://3v4l.org/SbuZe

写相同逻辑的更短方法是:

foreach($array2 AS $data) {
   echo $data .PHP_EOL. (array_search($data, $array1) !== false ? "true" : "false").PHP_EOL;
   echo PHP_EOL;
}

输出:https://3v4l.org/XTcrh

答案 1 :(得分:1)

使用in_array函数

尝试

$array1 = ["K", "L", "M"];
$array2 = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M"];

    foreach($array2 AS $data) {
        echo $data."<br>";

        if(in_array($data, $array1)) {
            echo "TRUE<br>";
        }

        echo "<br>";
    }