我处理这个问题已经有一段时间了。假设我需要创建一个包含周一、周二、圣诞节和万圣节的数组。函数需要查找并打印包含字符串"day"的所有条目。
我已经创建了以下内容。
$day = array('Monday', 'Tuesday', 'Christmas', 'Halloween');
然后我尝试了in_array
和str_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
数组,其中包含单词day和str_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
,但我们要查找的单词必须在字符串末尾。