【发布时间】:2022-01-13 10:32:07
【问题描述】:
我很困惑。为什么 array_search 会跳过数组中的第一个元素? in_array 只返回布尔值,array_search 可以返回任何值——是因为这个吗?现在这对我来说毫无意义。 示例代码如下:
<?php
$array = array("Mac", "NT", "Linux");
if (in_array("Mac", $array)) {
echo "Ok \n";
} else {
echo "Not ok \n";
}
// output: Ok
if (array_search("Mac", $array)){
echo "Ok \n";
} else {
echo "Not ok \n";
}
// output: Not Ok
$arrayForArraySearch = array('', "Mac", "NT", "Linux"); // add first element
if (array_search("Mac", $arrayForArraySearch)){
echo "Ok \n";
} else {
echo "Not ok \n";
}
// output: Ok, but it's no longer first item
?>
【问题讨论】:
-
array_search()如果成功则返回密钥 - 即“Mac”的0,转换为false,因此您输入else {...}块。 -
@berend 将其作为答案输入,以便标记。