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:32. |