我有这个数组,从数据库生成:
do {
$rsvp_array[$row_rsRSVP['rsv_guest']] = array(
'id' => $row_rsRSVP['rsv_id'],
'guest' => $row_rsRSVP['rsv_guest'],
'confirmed' => $row_rsRSVP['rsv_confirmed']
);
} while ($row_rsRSVP = mysql_fetch_assoc($rsRSVP));
很好,使用 print_r() 我得到了这个:
Array
(
[1] => Array
(
[id] => 1
[guest] => 1
[confirmed] => 1
)
[15] => Array
(
[id] => 2
[guest] => 15
[confirmed] => 0
)
[5] => Array
(
[id] => 3
[guest] => 5
[confirmed] => 1
)
[10] => Array
(
[id] => 4
[guest] => 10
[confirmed] => 1
)
[6] => Array
(
[id] => 5
[guest] => 6
[confirmed] => 0
)
)
所以我知道阵列正在工作。
现在我需要查看一个数字是否在主数组中,即:
if (in_array(15, $rsvp_array)) { echo 'OK'; }
好吧,这行不通!数字 15 是数组的第二个键,但没有运气!
我哪里错了?
提前感谢您的答案...
最佳答案
in_array()
将在 中搜索值 ——而不是 key 。
您应该:
array_key_exists()
: if (array_key_exists(15, $rsvp_array)) {...}
isset()
测试是否设置了某个键:if (isset($rsvp_array[15])) {...}
array_keys()
获取 key ,并使用 in_array()
在那个键数组上。 关于PHP in_array 函数,为什么这不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5647702/