如何解决PHP in_array函数,为什么这不起作用?
| 我有一个从数据库生成的数组: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()
将搜索值-而不是键。
您应该:
用array_key_exists()
:if (array_key_exists(15,$rsvp_array)) {...}
或使用isset()
测试是否设置了某个键:if (isset($rsvp_array[15])) {...}
或(不好的主意)使用array_keys()
来获取密钥,并在该密钥数组上使用in_array()
。
,可能您正在寻找用于检查数组中的值是否不是键的array_key_exists in_array。
if (array_key_exists(15,$rsvp_array))
{
echo \"ok\";
}
或用isset检查
isset($rsvp_array[15])
,in_array()
仅查看数组的值,但是您想知道是否设置了特定键
if (array_key_exists(15,$rsvp_array)) { echo \'OK\'; }
要么
if (isset($rsvp[15])) { echo \'OK\'; }
第二个值在大多数情况下已足够,但如果值为null
则不起作用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。