-2

我有$days下面这样的数组:

$days= array ("Monday 1 April 2013","Tuesday 2 April 2013","Wednesday 3 April");

我会搜索它以删除从星期一和星期日开始的每个元素。

4

4 回答 4

0

您可以使用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”。

于 2013-04-11T14:21:12.053 回答
0
$days = array_filter($days, function($el){
    return !(strpos($el, 'Monday') === 0 || strpos($el, 'Sunday') === 0);
});

键盘示例

于 2013-04-11T14:21:18.020 回答
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;

}


}    


}
于 2013-04-11T14:27:37.747 回答
0

尝试这个:

for($i=0;$i<count($days);$i++) {
    $words = explode(' ',$days[$i]);
    if($words[0]==='Monday' || $words[0]==='Sunday') unset($days[$i]);    
}
于 2013-04-11T14:22:32.840 回答