2014-08-28 36 views
2

我如何在数组的条目中使用glob,例如glob()在PHP中的文件系统上使用?php:glob in array(不在文件系统中)

一个例子:

var_dump(glob_array('pattern*', array('p', 'pattern', 'pattern_123', 'wurstbrot')); 
array(2) { 
    [0]=> 
    string(7) "pattern" 
    [1]=> 
    string(11) "pattern_123" 
} 
+1

http://php.net/manual/en/function.array- filter.php? – PeeHaa 2014-08-28 16:05:18

+0

@PeeHaa谢谢,但那并没有实现globbing。 – tback 2014-08-28 16:14:18

+3

你们为什么认为这是不合时宜的?你能详细说明一下吗?我很困惑! – tback 2014-08-28 18:23:07

回答

2

检查出fnmatch()功能

function glob_array($pattern, array $array, $flags = 0) 
{ 
    return array_filter($array, function($val) use($pattern, $flags){ 
     return fnmatch($pattern, $val, $flags); 
    }); 
} 


print_r(glob_array('pattern*', array('p', 'pattern', 'pattern_123', 'wurstbrot'))); 

输出:

Array 
(
    [1] => pattern 
    [2] => pattern_123 
) 
+0

感谢您的回答,但这不是我正在寻找的。事实上,globbing和正则表达式之间存在巨大差异:http://en.wikipedia.org/wiki/Glob_%28programming%29 – tback 2014-08-28 16:12:09

+1

@tback噢,我明白你的意思了,试着用fnmatch() – Sam 2014-08-28 16:16:00

+0

不错,那就是我正在寻找! – tback 2014-08-28 20:37:52