使用php基于特定关键字拆分数组

时间:2012-02-08 18:30:51

标签: arrays preg-match

我有这样的数组

Array (
    [0] => styles.css 
    [1] => gallerystyle.css 
    [2] => index.php 
    [3] => javascript:; 
    [4] => javascript:; 
    [5] => about.php 
    [6] => gallery.php?id=33 
    [7] => gallery.php?id=30 
    [8] => gallery.php?id=21 
) 

我想拆分那些找到这种模式的数组“.php?”

例如:

我在gallery.php中找到了这个模式?id = 33所以它应该只显示基于模式的这些数组....任何帮助将不胜感激:)

1 个答案:

答案 0 :(得分:0)

您可以使用以下函数之一(如果需要正则表达式,则为ArrayFilterRegExp;否则为ArrayFilterStrpos)。

function ArrayFilterRegExp($array, $pattern)
{
    $res = array();
    foreach($array as $a)
        if (preg_match($pattern, $a))
            $res[] = $a;
    return $res;
}
$filtered = ArrayFilterRegExp($array, '#\.php#i');


function ArrayFilterStrpos($array, $find)
{
    $res = array();
    foreach($array as $a)
        if (strpos($a, $find) !== false)
            $res[] = $a;
    return $res;
}
$filtered = ArrayFilterStrpos($array, ".php");