Как получить максимальную цифру из названий файлов в указанной папке? У меня есть папка "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.