Хабр
β
Открыть список
Как стать автором
Моя лента
Все потоки
Разработка
Администрирование
Дизайн
Менеджмент
Маркетинг
Научпоп
Поиск
Написать публикацию
Настройки
Войти
Обновить
0
0
Василий Соколов
@megawilddaddy
Пользователь
Подписаться
Отправить сообщение
Профиль
Публикации
Комментарии
1
Закладки
Ещё
Открыть список
Подписчики
2
Подписки
2
Скопировать ссылку на RSS
Задача при собеседовании на работу в один крупный шведский сайт
megawilddaddy
22 авг 2011 в 18:27
Без проверок и прочего я бы написал так
function read_conf($fileName)
{
$result = array();
$fp = fopen($fileName, 'r');
while ($line = fgets($fp)) {
list($key, $value) = explode('=', $line);
$keyParts = explode('.', $key);
setValueFromKeyParts($result, $keyParts, $value);
}
return $result;
}
function setValueFromKeyParts(&$result, &$parts, $value)
{
$part = array_shift($parts);
if (count($parts) == 0) {
$result[$part] = $value;
} else {
if (!isset($result[$part])) {
$result[$part] = array();
}
setValueFromKeyParts($result[$part], $parts, $value);
}
}
Информация
В рейтинге
Не участвует
Откуда
Санкт-Петербург и область, Россия
Дата рождения
17 января 1986
Зарегистрирован
17 марта 2011
Активность
18 июня 2013 в 17:43
function read_conf($fileName)
{
$result = array();
$fp = fopen($fileName, 'r');
while ($line = fgets($fp)) {
list($key, $value) = explode('=', $line);
$keyParts = explode('.', $key);
setValueFromKeyParts($result, $keyParts, $value);
}
return $result;
}
function setValueFromKeyParts(&$result, &$parts, $value)
{
$part = array_shift($parts);
if (count($parts) == 0) {
$result[$part] = $value;
} else {
if (!isset($result[$part])) {
$result[$part] = array();
}
setValueFromKeyParts($result[$part], $parts, $value);
}
}