我有$days
下面这样的数组:
$days= array ("Monday 1 April 2013","Tuesday 2 April 2013","Wednesday 3 April");
我会搜索它以删除从星期一和星期日开始的每个元素。
您可以使用preg_grep () 来获取匹配正则表达式的数组元素。要获取与该表达式不匹配的元素,请将表达式设为负前瞻( ?!
):
$days = array ("Monday 1 April 2013", "Tuesday 2 April 2013", "Wednesday 3 April");
$result = preg_grep('/^(?!Monday|Sunday)/', $days);
print_r($result);
结果是
Array
(
[1] => Tuesday 2 April 2013
[2] => Wednesday 3 April
)
正则表达式的^(?!Monday|Sunday)
意思是“查找任何出现的^
(主题字符串的开头),其后没有出现“Monday”或“Sunday”。
$days = array_filter($days, function($el){
return !(strpos($el, 'Monday') === 0 || strpos($el, 'Sunday') === 0);
});
$new_array=array();
$days= array ("Monday 1 April 2013","Tuesday 2 April 2013","Wednesday 3 April");
foreach($days as $key=>$val)
{
$words = explode(' ',$val);
if($words[0]!='Monday' || $words[0]!='Sunday')
{
$new_array[]=$val;
}
}
}
尝试这个:
for($i=0;$i<count($days);$i++) {
$words = explode(' ',$days[$i]);
if($words[0]==='Monday' || $words[0]==='Sunday') unset($days[$i]);
}