打印数组中包含字母的某些元素



我处理这个问题已经有一段时间了。假设我需要创建一个包含周一、周二、圣诞节和万圣节的数组。函数需要查找并打印包含字符串"day"的所有条目。

我已经创建了以下内容。

$day = array('Monday', 'Tuesday', 'Christmas', 'Halloween');

然后我尝试了in_arraystr_contains。老实说,我对这件事有点不知所措。

以下是您的代码片段:

$day = array('Monday', 'Tuesday', 'Christmas', 'Halloween');
foreach ($day as $d) {
if (strpos($d,'day')) {
echo $d;
}
}

这就是preg_grep的构建目的。也许是矫枉过正,但有效。找到它们,然后用逗号(或其他什么(连接以显示:

echo implode(', ', preg_grep('/day/', $day));

使用array_filter过滤只有$day$days数组,其中包含单词daystr_contains。并将它们与CCD_ 8连接回来以显示它们。

$days = array('Monday', 'Tuesday', 'Christmas', 'Halloween');
echo join(', ', array_filter($days, fn($day)=>str_contains($day, 'day')));
//Monday, Tuesday

提示:使用PHP v.8上一版本提供的str_ends_with(haystack, needle)方法,即执行相同的str_contains,但我们要查找的单词必须在字符串末尾。

最新更新