Это регулярное выражение может охватывать ваши экземпляры, создавая две группы: ваше первое частичное слово и все остальное, включая расширение (я).Вам может понадобиться добавить только другие символы, кроме [az], которые могут быть в вашем первом слове в выходном массиве.
Возможно, не самая лучшая идея ограничить ваше регулярное выражение справа, поскольку у вас могут быть JPG
, JPEG
, jpg
и другие расширения, подобные:
$output = array(
'table1' => array(
'1' => 'image_807x400.jpg',
'2' => 'image-7x2.jpg',
'3' => 'image-7x2.JPEG',
'4' => 'image-7x2.JPG',
'5' => 'image-7x2.PNG',
'6' => 'image_807x400.png',
'7' => 'image_807x400.gif',
'8' => 'image_807x400.GIF',
),
'table2' => array(
'1' => 'image_807x400.jpg',
'2' => 'image-7x2.jpg',
'3' => 'image-7x2.JPEG',
'4' => 'image-7x2.JPG',
'5' => 'image-7x2.PNG',
'6' => 'image_807x400.png',
'7' => 'image_807x400.gif',
'8' => 'image_807x400.GIF',
),
'table3' => array(
'1' => 'actuality_1x30.jpg',
'2' => 'help_504x300.jpg',
'3' => 'team_1200x800.jpg',
),
);
replace($output);
function replace($output)
{
$final = array();
foreach ($output as $table => $files) {
foreach ($files as $file => $ids) {
$final[$table][$file] = preg_replace('/(?:^|(?:\.\s))([a-z]+)(.*)/s', '$1.jpg', $output[$table][$file]);
}
}
var_dump($final);
return $final;
}
Вывод
array(3) {
["table1"]=>
array(8) {
[1]=>
string(9) "image.jpg"
[2]=>
string(9) "image.jpg"
[3]=>
string(9) "image.jpg"
[4]=>
string(9) "image.jpg"
[5]=>
string(9) "image.jpg"
[6]=>
string(9) "image.jpg"
[7]=>
string(9) "image.jpg"
[8]=>
string(9) "image.jpg"
}
["table2"]=>
array(8) {
[1]=>
string(9) "image.jpg"
[2]=>
string(9) "image.jpg"
[3]=>
string(9) "image.jpg"
[4]=>
string(9) "image.jpg"
[5]=>
string(9) "image.jpg"
[6]=>
string(9) "image.jpg"
[7]=>
string(9) "image.jpg"
[8]=>
string(9) "image.jpg"
}
["table3"]=>
array(3) {
[1]=>
string(13) "actuality.jpg"
[2]=>
string(8) "help.jpg"
[3]=>
string(8) "team.jpg"
}
}