У меня есть массив, в котором перечислены папки в каталоге. До сих пор я жестко кодировал имена папок, но вместо этого я думал, что могу легко создать скрипт для разбора каталога и просто назначить имя каждой папки массиву. Таким образом, я мог бы легко добавлять папки и не должны коснуться сценарий снова ...PHP динамически заполняет массив
Субъект массив создает список опций ниспадающее меню со списком каждую папку ...
В настоящее время массив жёстко, как так ...
"опция" => Array ("папка один" => "folder1", "папка два" => "folder2")),
Но я пытаюсь сделать его динамичным Based на любые папки, найденные в данном каталоге.
Вот сценарий, который я использую, чтобы разобрать каталог и вернуть имена папок в массив. Он работает нормально.
function getDirectory($path = '.', $level = 0)
{
// Directories to ignore when listing output.
$ignore = array('.', '..');
// Open the directory to the handle $dh
$dh = @opendir($path);
// Loop through the directory
while(false !== ($file = readdir($dh)))
{
// Check that this file is not to be ignored
if(!in_array($file, $ignore))
{
// Show directories only
if(is_dir("$path/$file"))
{
// Re-call this same function but on a new directory.
// this is what makes function recursive.
//echo $file." => ".$file. ", ";
// need to return the folders in the form expected by the array. Probably could just add the items directly to the array?
$mydir2=$mydir2.'"'.$file.'" => "'.$file. '", ';
getDirectory("$path/$file", ($level+1));
}
}
}
return $mydir2;
// Close the directory handle
closedir($dh);
}
И вот мой первый взять на получение этих папок в массив ...
$mydir = getDirectory('/images/');
"options" => array($mydir)),
Но очевидно, что не работает, так как его не кормить массив правильно, я просто получить строку в моем списке вариантов ... Я уверен, что это простой шаг перехода, который мне не хватает ...
@Scott, у меня есть гораздо более короткий метод, но это зависит от того, установлена ли максимальная глубина. Будет ли ваша древовидная структура расти до любой глубины, или будет 3 или 4 уровня настолько глубоки, насколько это происходит? –
Привет, Даг, он будет только на один уровень. –