You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel集合筛选zip_code_check含'-'的行:解决like查询无效问题

Laravel集合筛选包含指定字符的行

你之前用$collection->where('zip_code_check', 'like'. '%-%')无效的原因是:Laravel集合的where方法默认是严格相等匹配,并不支持SQL中的like语法,所以这种写法无法筛选出包含-的行。

下面是几种可行的实现方法:

方法一:使用filter结合Laravel字符串辅助函数

通过filter遍历集合,用str_contains判断字段是否包含-:

$filteredCollection = $collection->filter(function ($item) {
    return str_contains($item['zip_code_check'], '-');
});

如果在类中使用,也可以引入Str类调用静态方法:

use Illuminate\Support\Str;

$filteredCollection = $collection->filter(function ($item) {
    return Str::contains($item['zip_code_check'], '-');
});

方法二:Laravel 9+ 专用便捷方法

Laravel 9及以上版本提供了whereStrContains方法,直接实现字符串包含筛选:

$filteredCollection = $collection->whereStrContains('zip_code_check', '-');

方法三:使用PHP原生函数strpos

如果不想依赖Laravel辅助函数,用原生strpos判断(注意要严格判断返回值不为false):

$filteredCollection = $collection->filter(function ($item) {
    return strpos($item['zip_code_check'], '-') !== false;
});

以上方法都能筛选出zip_code_check字段包含-的所有行,你可以根据自己的Laravel版本和习惯选择。

内容的提问来源于stack exchange,提问作者Alisha Lamichhane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 04:55:33