我有一个包含从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关键吗?可能导致这种情况的原因是什么?
答案 0 :(得分:1)
最有可能$key
是false
,当发送到echo时,它将显示为空。相反,您应该使用var_dump
来确定$key
False
在未找到针时从array_search
返回
Null
仅在您传递给array_search
的参数无效
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点。
答案 1 :(得分:0)
假设您的数组将始终包含连续的数字,并且您可以验证您的第二个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;
}