您现在的位置是:首页 >技术交流 >thinkphp报错 in_array() expects parameter 2 to be array, object given网站首页技术交流
thinkphp报错 in_array() expects parameter 2 to be array, object given
我的问题是
foreach ($books as $k => $v) {
if (in_array($v['id'], $book_id)) { //这个地方报错的
$books[$k]['check'] = 'checked';
}else {
$books[$k]['check'] = '';
}
}
这个问题是因为 你的变量$books“数组“”其实不是真正的数组而是 php的 object(stdclass) 类型
问题
知道了问题其实解决起来就简单了转换维数组就可以了
定义个函数
public function object2array(&$object) {
$object = json_decode( json_encode( $object),true);
return $object;
}
然后在你业务函数里面调用
if (is_object($book_id)) {
$arr = (array)($book_id);
} else {
$arr = &$book_id;
}
if (is_array($arr)) {
foreach($arr as $varName => $varValue){
$arr[$varName] = $this->object2array($varValue);//这里调用
}
}
$book_id = $arr;这个就是转换为的数组了!!!!解决问题