Php in_array()期望参数2为数组,给定布尔值
php代码中的in_array()存在问题。我有以下数组: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
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