Задача При Собеседовании На Работу На Крупный Шведский Сайт

Я PHP-разработчик, живу в Стокгольме.

Недавно я давал интервью крупному шведскому сайту (более миллиарда просмотров страниц в месяц).

Собеседование провели 2 программиста из этой компании.

В определенный момент один из них достал лист бумаги и сказал, что мне предлагают решить небольшую задачу (прямо на бумаге, без компьютера).

И что у меня есть 10 минут. Они также попросили прокомментировать каждый шаг.

Сразу скажу, что я ее не решил.

Сначала все казалось просто, но потом.

Итак, я ушел с встречи не проглотив ни слова.

С моей стороны он остался нерешенным.

Почему я публикую это? Во-первых, кому-то может пригодиться как хороший тест для наемных разработчиков; во-вторых, если кто-нибудь столкнётся с чем-то подобным, то он уже будет полон знаний; в-третьих, может кто-нибудь выложить в комментариях правильное решение? Ниже само задание.

Оставляю все в оригинале, как было.

Назначение PHP Напишите функцию read_conf($filename), которая преобразует приведенную ниже конфигурацию в многомерный массив.

Конфигурация разделена на строки, и каждая строка разделена по ключу и значению.

Ключ может быть многомерным и может быть от 1 до N, в примере ниже у нас есть только 4 уровня, но решение должно работать даже при добавлении еще одной строки с большим количеством уровней ключа: например.

session.save.db.master.host=10.0.0.1 ===config.txt=== идентификатор=www session.timeout=120 session.server.0.host=127.0.0.1 session.server.0.port=1111 session.server.0.id=сессия1 session.server.1.host=127.0.0.1 session.server.1.port=1111 session.server.1.id=сессия2 изображение.

ширина=640 image.height=480 image.watermark.small=wsmall.png image.watermark.normal=wnormal.png ===код=== ===выход===

array(3) { ["id"]=>strong(3) "www" ["session"]=>array(2) { ["timeout"]=>string(3) "120" ["server"]=>array(2) { [0]=> array(3) { ["host"]=> string(9) "127.0.0.1" ["post"]=> string(4) "1111" ["id"]=> string(8) "session1" } [1]=> array(3) { ["host"]=> string(9) "127.0.0.1" ["port"]=> string(4) "1111" ["id"]=> string(8) "session2" } } } ["image"]=> array(3) { ["width"]=> string(3) "640" ["height"]=> string(3) "480" ["watermark"]=> array(2) { ["small"]=> string(10) "wsmall.png" ["normal"]=> string(11) "wnormal.png" } } }

Теги: #php #задача #собеседование #тест #найм #php

Вместе с данным постом часто просматривают: