微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP in_array函数,为什么这不起作用?

如何解决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 举报,一经查实,本站将立刻删除。