检查字符是否存在于集合laravel中

e5nqia27  于 2023-02-10  发布在  其他
关注(0)|答案(3)|浏览(132)

我有一个带有邮政编码的CSV文件。有些城市只有一个邮政编码,而有些城市有多个邮政编码。

istat;municipality;region;province_abbreviation;province;zip_code_check;zip_code;lat;lng
60006;Anagni;Lazio;FR;Frosinone;"03012";"03012";41.74393633;13.15452041
67002;Ancarano;Abruzzo;TE;Teramo;64010;64010;42.83680898;13.74139609
42002;Ancona;Marche;AN;Ancona;60121-60131;60121;43.61675973;13.51887537
42002;Ancona;Marche;AN;Ancona;60121-60131;60122;43.61675973;13.51887537
42002;Ancona;Marche;AN;Ancona;60121-60131;60123;43.61675973;13.51887537
42002;Ancona;Marche;AN;Ancona;60121-60131;60124;43.61675973;13.51887537
42002;Ancona;Marche;AN;Ancona;60121-60131;60125;43.61675973;13.51887537
42002;Ancona;Marche;AN;Ancona;60121-60131;60126;43.61675973;13.51887537
42002;Ancona;Marche;AN;Ancona;60121-60131;60127;43.61675973;13.51887537
42002;Ancona;Marche;AN;Ancona;60121-60131;60128;43.61675973;13.51887537
42002;Ancona;Marche;AN;Ancona;60121-60131;60129;43.61675973;13.51887537
42002;Ancona;Marche;AN;Ancona;60121-60131;60131;43.61675973;13.51887537

我正在$collection中获取这些内容,我想提取zip_code_check列中包含-的行。我尝试了$collection->where('zip_code_check', 'like'. '%-%'),但没有成功。当zip_code_check列包含-时,是否有任何方法可以获取行?

smdnsysy

smdnsysy1#

应该使用(““)而不是(' '),如下所示:(“邮政编码检查”、“喜欢”、“%-%”)

gojuced7

gojuced72#

不使用where + like,另一种可能的解决方案是:

use Illuminate\Support\Str;

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

bzzcjhmw3#

我使用了str_contains,但是它返回了一个布尔值而不是一个过滤行。下面是我解决这个问题的方法。

$filter = $collection->filter(function($value, $key) {
if (str_contains($value['zip_code_check'], '-')) {
        return $value;
     }
});

相关问题