class Parser { public function __construct($patch) { $this->patch = $patch; } public function getCategories() { return array_filter(scandir($val), array($this, 'callback)); } private function callback($val) { if ($val == $this->patch) { return true; } else { return false; } } private $patch; } |
dmitriymar,
Как это поможет? |
Gvozd,
насколько я понял ему нужна сортировка массива с использованием его данных. это сортировка массива с использованием пользовательской функции в принципе аналог array_filter только сортировку производит в самом массиве, а array_filter возвращает отсортированный |
function getCatigories($patch) { function name($val) { global $patch; //вот тут я val сравниваю с внешней $patch if($val == $patch){return true;} else{return false;} } return array_filter(scandir($patch), 'name'); }; //то есть если элемент массива равен 'doors' то оставить его. getCatigories('doors'); |
Я получаю имена папок и файлов в одной директории, мне нужно получить массив только папок.
я получаю массив И папок и файлов, и пробегаясь по нему проверяряю что есть файл а что есть папка, и если это папка то засовываю путь в новый массив. В итоге в новом массиве остаются только пути папок. в JS это было бы так function getFoldersArray(patch) { var arrFolders = []; //scandir возвращает массив и папок и файлов scandir(patch).forEach(thisPatch) { //is_dir проверяет если папка то возвращает true if (is_dir(thisPatch)) { arrFolders.push(thisPatch); } } return arrFolders; } var arrayFoldersInDoorsFolder = getFoldersArray("/doors"); |
|
Цитата:
glob('./doors/*.{jpg,jpeg,png,bmp,gif}', GLOB_BRACE); я могу выбирать расширения, но $dirs = glob("./doors/*", GLOB_ONLYDIR); Другой вопрос, как получить только файлы? |
|
vasa_c,
спасибо огромное! но как получить только файлы? |
ну видимо придётся обходить всё и смотреть, файл это или нет
|
Часовой пояс GMT +3, время: 05:33. |