我有一个包含从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号的钥匙?是什么原因造成的?
最有可能的$key
是false
,当发送到echo时,它将显示为空。相反,您应该使用var_dump
来确定$key
的值
当针未找到时,False
从array_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;
}