Disclaimer: неоптимальный вариант для популяризации функций PHP
Можно использовать
sscanf(), чтобы вынимать число из каждой строки (если они одинаково начинаются) и сортировать массив своей функцией, переданной в
usort():
$arr = [
'image_name_1.jpg',
'image_name_11.jpg',
'image_name_2.jpg',
'image_name_100.jpg',
'image_name_001.jpg',
];
usort($arr, function($a, $b) {
$format = 'image_name_%d.jpg';
list($aVal) = sscanf($a, $format);
list($bVal) = sscanf($b, $format);
return $aVal - $bVal;
});
echo json_encode($arr);
/*
["image_name_1.jpg","image_name_001.jpg","image_name_2.jpg","image_name_11.jpg","image_name_100.jpg"]
*/