我scandir()
用来在包含以下文件的目录中构建一个图像文件名数组,R12345.jpg, R12345_2.jpg, R12346.jpg, R12346_2.jpg, R12346_3.jpg
依此类推.
我想知道将此数组拆分为以下元素的最佳方法:
R12345,,jpg
R12345,2,jpg
R12346,,jpg
R12346,2,jpg
R12346,3,jpg
Run Code Online (Sandbox Code Playgroud)
谢谢.
您可以尝试:
$input = 'R12345_2.jpg';
$output = explode(',', str_replace(array('.', '_'), ',', $input);
Run Code Online (Sandbox Code Playgroud)
它会返回一个数组:
array (size=3)
0 => string 'R12345' (length=6)
1 => string '2' (length=1)
2 => string 'jpg' (length=3)
Run Code Online (Sandbox Code Playgroud)
或使用正则表达式:
preg_match('/^([^_]*)_?(\d+)?\.(.*)$/', $input, $output);
Run Code Online (Sandbox Code Playgroud)
输出:
array (size=4)
0 => string 'R12345.jpg' (length=10)
1 => string 'R12345' (length=6)
2 => string '' (length=0)
3 => string 'jpg' (length=3)
Run Code Online (Sandbox Code Playgroud)
同
array_shift($output);
Run Code Online (Sandbox Code Playgroud)
你可以快速删除第一个元素.