如何将数组拆分为基于元素

-4 php arrays split

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)

谢谢.

hsz*_*hsz 5

您可以尝试:

$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)

你可以快速删除第一个元素.