根据值从数组中删除值?

时间:2012-04-26 17:15:40

标签: php

我有一个PHP数组,父级名为“items”。在该数组中,我想删除所有不包含字符串的值(我将使用正则表达式来查找)。我该怎么做?

2 个答案:

答案 0 :(得分:5)

foreach($array['items'] as $key=>$value) { // loop through the array
    if( !preg_match("/your_regex/", $value) ) {
        unset($array['items'][$key]);
    }
}

答案 1 :(得分:2)

您可以尝试使用array_filter

$items = array(
    #some values
);
$regex= '/^[some]+(regex)*$/i';
$items = array_filter($items, function($a) use ($regex){
    return preg_match($regex, $a) !== 0;
});

注意:这仅适用于PHP 5.3+。在5.2中,你可以这样做:

function checkStr($a){
    $regex= '/^[some]+(regex)*$/i';
    return preg_match($regex, $a) !== 0;
}

$items = array(
    #some values
);
$items = array_filter($items, 'checkStr');