gpt4 book ai didi

PHP 错误 in_array() [function.in-array] : Wrong datatype for second argument

转载 作者:行者123 更新时间:2023-12-04 00:49:11 25 4
gpt4 key购买 nike

即使我在函数中为第二个参数设置了全局变量,我也会收到以下错误。第二个参数是一个数组。

in_array() [function.in-array]: Wrong datatype for second argument

$cat_id

Array ( [0] => 76 [1] => 89 [2] => 81 ) 

PHP

for ($x = 0; $x < count($query_cat_id); $x++){
if(in_array($query_cat_id[$x], $cat_id)){
//
}
}

最佳答案

将代码更改为以下内容:

$cat_id = array( 0 => 76 , 1 => 89 , 2 => 81 ); 

for( $x = 0 , $c = count( $query_cat_id ) ; $x < $c ; $x++ ){
if( in_array( $query_cat_id[$x] , (array) $cat_id ) ){
// MATCH FOUND
}
}

1)如果您的问题中提供的代码按原样,则您声明数组的方式不寻常(并且可能有错误),2) 在 $cat_id 之前包含 (array) 应确保将其作为数组处理,即使它实际上是一个字符串(它会立即转换为数组该函数的目的)。

我意识到这些建议可能不准确,因为它们基于您复制并粘贴到 SO 中的数据,而不是脚本中的实际数据,但它们可能为您提供一个起点。

可能的替代解决方案

如果代码的目的是比较两个数组,并在发现值在两个数组中时执行某些操作,则以下可能是执行此工作的更快方法:

$cat_id = array( 0 => 76 , 1 => 89 , 2 => 81 ); 
//$query_cat_id is assumed as set to an array already

$matched_cat_ids = array_intersect( (array) $query_cat_id , (array) $cat_id );

foreach( $matched_cat_ids as $k => $v ){
// Perform work required on MATCH for Value "$v"
}

假设您需要为每场比赛执行特定的工作。如果您只是想知道是否发生了匹配,检查 count($matched_cat_ids) 是否大于零就足够了。

关于PHP 错误 in_array() [function.in-array] : Wrong datatype for second argument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3544250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com