Как получить максимальную цифру из названий файлов в указанной папке?
У меня есть папка "my_files" с файлами, такими как "number_1.txt", "number_30.txt" и "number_12.txt".
Я уже написал следующий код, который выводит цифры из названий файлов, но не знаю, как найти максимальную цифру.
$dir = glob('my_files/*.txt');
foreach ($dir as $file) {
if(preg_match('/\.(txt)/', $file)){
$file = str_replace(['number', '.txt', 'my_files'], '', $file);
echo $file.'<br>';
}
}
Для нахождения максимальной цифры из названий файлов в указанной папке вам нужно использовать функцию max(). Вместо вывода каждой цифры внутри цикла, вы можете сохранять их в массиве и затем использовать функцию max() для поиска максимальной цифры.
Вот обновленный код:
```php
$dir = glob('my_files/*.txt');
$numbers = [];
foreach ($dir as $file) {
if(preg_match('/\.(txt)/', $file)){
$file = str_replace(['number', '.txt', 'my_files'], '', $file);
$numbers[] = $file;
}
}
$maxNumber = max($numbers);
echo $maxNumber;
```
Этот код сначала создает пустой массив `$numbers`. Затем внутри цикла он добавляет каждую найденную цифру в массив `$numbers`. После цикла используется функция `max()` для нахождения максимальной цифры из массива `$numbers`, и она выводится на экран.
$files = glob('my-files/*.txt');
$max = max(
array_map(
fn($val) => preg_replace('![\D]+!', '', basename($val)),
$files
)
);
var_dump($max);
We start by getting all the files and remove everything except digits from their names. Next, we find the maximum value in the array using the max() function.