[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Из строки с разделителем сделать многом-ный массив
ZeNkoT
В конфигурационном файле (file_conf.php) есть такие строки:
sess.usr=200
sess.srv.0.host=192.168.0.1
sess.srv.0.port=25070
sess.srv.0.id=session1

Надо сделать так, чтобы получился многомерный массив вида:
$array['sess']['usr'] = '200';
$array['sess']['srv'][0]['host'] = '192.168.0.1';
$array['sess']['srv'][0]['port'] = '25070';
$array['sess']['srv'][0]['id'] = 'session1';

Я начал решать следующим образом. Подгружаю файл конфига через функцию parse_ini_file и заношу все данные в массив.
$array = parse_ini_file('file_conf.php');

foreach($array as $key => $value)
{
/* А вот тут возникли проблемы... */
}

Проблемы возникли при создании вложенного(многомерного) массива. Т.е. в цикле у нас получается при первом прохождении $key = 'sess.usr'. И вот как из этой строки сделать многомерный массив, да и ещё чтобы последний ключ был равен значению 200. В общем вот так:
$array['sess']['usr'] = '200';




Спустя 24 минуты, 44 секунды (8.08.2011 - 16:39) neadekvat написал(а):
Гы.

foreach($array as $key => $value)
{
$indexes = "['". str_replace('.', "']['", $key) . "']";
$key = '$arr'. $indexes ."='$value';";
eval($key);
}

print_r($arr);

Спустя 16 минут, 59 секунд (8.08.2011 - 16:56) ZeNkoT написал(а):
Благодарю smile.gif

Спустя 1 час, 24 минуты, 40 секунд (8.08.2011 - 18:21) jetistyum написал(а):
вы могли бы вынести названия секций, и парсить ини с секциями.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.