Php in_array()期望参数2为数组,给定布尔值

Php in_array()期望参数2为数组,给定布尔值,php,web,Php,Web,php代码中的in_array()存在问题。我有以下数组: Array ( [0] => 11 [1] => 13 [2] => 14 [3] => 15 [4] => 16 [5] => 17 [6] => 18 [7] => 19 [8] => 20 [9] => 21 [10] => 22 [11] => 23 [1

php代码中的in_array()存在问题。我有以下数组:

Array (
    [0] => 11
    [1] => 13
    [2] => 14
    [3] => 15
    [4] => 16
    [5] => 17
    [6] => 18
    [7] => 19
    [8] => 20
    [9] => 21
    [10] => 22
    [11] => 23
    [12] => 24
    [13] => 25
    [14] => 26
    [15] => 27
    [16] => 28
    [17] => 29
)
下面的函数从数组中删除一个元素(因为unset不保留索引):

不幸的是,当我执行in_数组($value,$array),if条件时,我得到了一个错误:“in_数组()期望参数2是数组,布尔给定的”。对于数组中的任何元素都会发生这种情况

我用is_array()检查了$array变量,它返回true,因此该变量被识别为数组。有什么想法吗

编辑:

我对数组的定义如下:

$array = array(11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29);
<?php
function removeFromArray($value, $array) {
    // If value is in the array
    if (in_array($value, $array)) {
        // Get the key of the value
        $key = array_search($value, $array);
        // Remove the element
        unset($array[$key]);
        // Fix the key indexes
        $array = array_values($array);
        return $array;
    }
    return false;
}

$array = array(11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29);
$array= removeFromArray(11, $array);
var_dump($array);
并以这种方式调用函数:(例如:如果我想删除数字11)


在调用removeFromArray($value,$array)时,如果$array不是数组,则会出现“In_array()期望参数2是数组”错误。

您的代码没有问题。这不是一个答案,它只是为了表明您的代码是好的

我只是按照如下方式进行了测试:

$array = array(11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29);
<?php
function removeFromArray($value, $array) {
    // If value is in the array
    if (in_array($value, $array)) {
        // Get the key of the value
        $key = array_search($value, $array);
        // Remove the element
        unset($array[$key]);
        // Fix the key indexes
        $array = array_values($array);
        return $array;
    }
    return false;
}

$array = array(11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29);
$array= removeFromArray(11, $array);
var_dump($array);
和PHP版本,尽管这不重要:

[vinod@wiplnx01:/home/workspace/php/playground]$ php -v
PHP 5.4.16 (cli) (built: Jun  6 2013 09:20:50) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
    with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans

因此,请检查您是否有输入错误或其他错误。

请向我们展示您如何调用函数和数组声明。在末尾添加了函数调用和数组定义。使用保留关键字作为变量是一个主要的编程错误。我尝试了您的代码,没有出现错误,然后您可能在某个地方有输入错误。
[vinod@wiplnx01:/home/workspace/php/playground]$ php -v
PHP 5.4.16 (cli) (built: Jun  6 2013 09:20:50) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
    with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans