PHP: array_search returning null


PHP: array_search returning null

我有一个包含从1到14的数字的正则数组,它是通过从SQL结果列中检索INT生成的。

使用另一个查询,我返回另一个INT.

我正在我的数组中搜索这个INT。

$key = array_search("$roomNb", $freeRooms);

然而,当我尝试回显这个键时,什么也没有出现。它是空的。

如果我使用循环回显$freeRooms,我会得到:

1
2
3
4
5
6
7
8
9
10
11
12
14

如果我回复$roomNb,我会得到

5

所以我不明白为什么我没有得到任何回报。我应该期待一把4号的钥匙?是什么原因造成的?

最有可能的$keyfalse,当发送到echo时,它将显示为空。相反,您应该使用var_dump来确定$key 的值

当针未找到时,Falsearray_search返回

只有当您传递给array_search的参数是无效时,才会返回Null

http://php.net/manual/en/function.array-search.php

使用在此处测试此代码http://writecodeonline.com/php/:

echo false;
echo null;
var_dump(false);
var_dump(null);
$code = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14);
$roomNb = 5;
var_dump(array_search("$roomNb", $code));

应该还可以。echo将不输出任何内容。var_dump将输出内容。钥匙在4号。

假设您的数组总是包含连续的数字,并且您可以验证您的第二个SQL调用是否返回其中一个数字,我会说类似

$value = $freeRooms[$roomNb] 

我个人不熟悉array_search是如何执行的,但是如果你想写自己的,我想它看起来会像这个

function IndexOf($searchValue,$array)
{
    $i = 0;
    for( $i = 0; $i < count($array); $i++ ) 
        if( $array[$i] == $searchValue )
            return $i;
}