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

标签 php arrays

我有这个数组,从数据库生成:

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/

    相关文章:

    c++ - 创建一个包含 300 万个元素的双数组

    java - 在 String 数组中查找 n 个空的相邻位置

    arrays - Julia 中的push!() 和append!() 方法的效率如何?

    php - 获取值 mysql 计数并保存到表中

    php - 如何在没有登录或注销后停止移动到中间页面?

    php - 如何使用 PHP SDK 从 Facebook 获取我的所有照片?

    php - "array_expression"在php中是什么意思?

    php - 为什么我打印的数组末尾有一个 1?

    php - mysql中按慢查询排序

    php - 如何将 JSON 字符串转换为数组(PHP)?