2014-08-28 37 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