Не могу понять... Массив

Marduk

Новичок
Не могу понять... Массив и SPAW

Нужно сформировать массив который бы содержал список директорий... Он используется при вставке изображений в визуальном редакторе spaw. Структура:

$spaw_imglibs = array(
array(
'value' => 'site/images/',
'text' => 'images',
),
);

массив формирую так:

function parsedirs($base="")
{
global $images;
if(($dir = @opendir($images . $base))) {
while(FALSE !== ($file = readdir($dir))) {
if($file != "." && $file != "..") {
if(is_dir($images . $base . $file))
{
$spaw_imglibs[]['value']= "cms3/".$base.$file."/";
$spaw_imglibs[]['text']= $file;

$spaw_imglibs = array_merge($spaw_imglibs,parsedirs("/".$file."/"));
}
}
}
closedir($dir);
}

return $spaw_imglibs;
}

Однако почему-то spaw в упор не хочет видеть всех директориий. Если же в функцию перед return вставить
$spaw_imglibs[]['value']="фигня";
$spaw_imglibs[]['text']="фигня"; то spaw отображает этот элемент как не бывало... Остальное не видит.. В чём траблы?
 

Marduk

Новичок
Да! рекурсивный обход каталога с внесеним всех подкаталогов массив...
 

sage

Новичок
2Marduk
Однако почему-то spaw в упор не хочет видеть всех директориий. Если же в функцию перед return вставить
$spaw_imglibs['value']="фигня";
$spaw_imglibs['text']="фигня";
Правильно, разница то между
PHP:
$spaw_imglibs[]['value']
и
PHP:
$spaw_imglibs['value']
то существует! ИМХО, всё дело в этом.
 

Blindman

Новичок
PHP:
 $spaw_imglibs[]['value']= "cms3/".$base.$file."/";
$spaw_imglibs[]['text']= $file;
Добавляет в массив $spaw_imglibs 2 элемента, хотя по логике должен бытьодин
 

fog

Рыцарь Джедай
$spaw_imglibs[]['value']="xxx";
$spaw_imglibs[]['text']="yyyy"

если я правильно всё понял, то

$spaw_imglibs[?] - это одна запись у которой есть поля value и text?

если так, то у них ID будут разные.

$spaw_imglibs[1]['value']="xxx";
$spaw_imglibs[2]['text']="yyyy"

-~{}~ 16.04.04 14:26:

суть - нужно в цикле юзать какую-то переменную в качестве индекса и делать

PHP:
$spaw_imglibs[$i]['value']="xxx";
$spaw_imglibs[$i]['text']="yyyy"
 

Profic

just Profic (PHP5 BetaTeam)
кривой массив на выходе получается, сделай ему print_r и поймешь, чтоу тебя не так.
Подсказка - дело как раз в []
 

Линк

Guest
hint:

PHP:
$a[]['name']="Vasa";
$a[]['klichka']="durak";
//равносильно 
$a[1]['name']="Vasa";
$a[2]['klichka']="durak";
С каждым [] индекс увеличиваеться, и потому тебе надо взять переменную, и юзать ее как индекс
PHP:
$a[$i]['name']="Vasa";
$a[$i]['klichka']="durak";
$i++;
 

Линк

Guest
Krisha прав)
Если конечно массив пустой, а не содержит одного элемента)
 

hayk

Новичок
Можно и без индекса. Тиким образом:
PHP:
$spaw_imglibs[] = array
(
    'value'=> "cms3/".$base.$file."/",
    'text'=> $file
)
 
Сверху