php字符串过滤qq号,php - 根据字符串中的类别ID过滤行 - SO中文参考 - www.soinside.com...

我在数据库中有很多行,这些行具有与之链接的类别。尽管类别在一个字段中用逗号作为字符串连接在一起。

例如;name | categoryIDs

------------------

jack | 5,6,9,16

john | 6,8,9,16

mike | 2,5,7,10

brad | 3,5,7,16

我有一个请求,需要基于具有这样数组中类别的请求来过滤所有行;data = [

'maths' => 6,

'science' => 16

]

因此,在这种情况下,必须返回在categoryIDs字段中具有6 和 16的所有行。

我曾考虑使用array_filter,但是我仍然在方法内部使用回调函数或匿名函数感到非常苦恼。

我尝试过,但是我不明白;$data = [

'maths' => 6,

'science' => 16,

];

$rows = $this->getRecords();

$result = array_filter($rows, function ($row) use ($data) {

if (in_array($data, explode(',', $row['categoryIDs']))) {

return true;

}

return false;

});

我没有得到任何结果,该数组保持为空。有人可以解释一下,告诉我如何才能做到最好吗?也欢迎任何其他选择。不幸的是,我坚持每行以字符串形式提供的categoryID。无法以其他任何方式检索它们。但是,如果我可以在过滤之前先操作该字段,那么它也可以正常工作。有什么想法吗?

感谢您的帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值