如果数组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
我做错了什么?
答案 0 :(得分:1)
您需要像这样更改代码:
if(array_search($data, $array1) === false) {
echo "false<br>";
}
输出:-https://3v4l.org/VgRFd和https://3v4l.org/SbuZe
写相同逻辑的更短方法是:
foreach($array2 AS $data) {
echo $data .PHP_EOL. (array_search($data, $array1) !== false ? "true" : "false").PHP_EOL;
echo PHP_EOL;
}
答案 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>";
}