thinkphp 中 array in没有结果

$test = [5,6];
$seller_list1=[];
foreach($seller_list as $every){
$seller_list1[]=(int)$every['member_id'];
}
//搜索
$condition = array();
$condition['buyer_id'] = array('in',$seller_list1);

以上部分为代码,$seller_list1为存储表中member_id的数组,希望将其当作条件建立新的查询,但是在下面in的数组部分输入$seller_list1返回的是空结果,我尝试在前台打印$seller_list1中的内容,有结果,然后用test写死$seller_list1同样的数值则可以返回结果,请问是什么原因
最新回答
薄荷糖味的吻

2024-09-14 17:59:26

你好,根据这个问题,我之前也遇到过,当时我将数组转化成字符串就可以解决了。
形式如下:

//array('in',$param),$param可以是一维数组或者字符串
$ids = [1,2,3];
$ids_string = implode(',', $ids);
$where['id'] = array('in',$ids_string);//== $where['id'] = array('in','1,2,3');

所以,你应该检查一下,文中生成的$seller_list1数组,是否为一个一维数组。
希望可以帮到你。

ㄗ①精︶ㄣ

2024-09-14 14:25:08

foreach($seller_list as $every=>$v){

$seller_list1[]=(int)$v['member_id'];
//array_push($seller_list1,(int)$v['member_id'])

}
或者
foreach($seller_list as $every){
$seller_list1[]=(int)$seller_listp[$every]['member_id'];
//array_push($seller_list1,(int)$seller_listp[$every]['member_id'])

}
你这php基础呀