我正在搜索一个集合,我希望这个搜索大小写不敏感,或者至少以小写形式更改集合值。我怎么能这样做?
$value = strtolower($value);
$collection = $collection->where($attribute, $value);
$ value是小写,而集合中的内容不是,所以没有匹配。
答案 0 :(得分:8)
您可以使用filter()
方法和回调来执行您想要的操作:
$collection = $collection->filter(function ($item) use ($attribute, $value) {
return strtolower($item[$attribute]) == strtolower($value);
});
答案 1 :(得分:0)
您可以映射集合并为每个项目小写属性:
$value = strtolower($value);
$collection = $collection
->map(function ($item) use ($attribute) {
$item->{$attribute} = strtolower($item->{$attribute});
return $item;
})
->where($attribute, $value);