Создание многомерного массива

Novice

Новичок
Создание многомерного массива

Задача:
на вход функции подаем массив ключей и значение
на выходе должны получить массив вида

$result[$key1][$key2][$key3] = $value

например:

function genArray( $keys = array(), $value ) {

.... что тут???
}

$cost = genArray( array ('shop', 'items', 1), 99.99 );

теперь $cost должен выглядеть так:
PHP:
Array
(
    [shop] => Array
        (
            [item] => Array
                (
                    [1] => 99.99
                )

        )
)
P.S. пробовал с eval, но выходит коряво...
 

Crystal

Новичок
Novice
Может написать рекурсивную функцию, которая получает очередной ключ и "текущий массив" и возвращает массив с этим ключом и значением в виде этого "текущего массива"?
Не уверен, что так получится, но что-то такое в голове крутится. А времени проверить нет.
 

kvf77

Red Devil
Crystal

пусть он сначала ответит зачем ему такой сложный алгорритм - пусть опишет ход своих мыслей
 

SiMM

Новичок
> Ну может тут магическая фраза "Начальник требует":)))
Ну тогда пусть начальник объяснит, зачем ему это ;)
 

Novice

Новичок
Автор оригинала: kvf77
Novice

скажи лучше зачем тебе такое шаманство?
ну например в классе для работы с сессиями иногда приходиться устанавливать/получать многомерные массивы и не взамен вот такому:

$session = new Session();

$session->set('shop', array('catalog' => array('items' => 1)));

$session_shop = $session->get('shop');

$catalog = $session_shop['catalog'];

писать такое:

$session = new Session();

$session->set( array('shop', 'catalog', 'items'), 1));

$catalog = $session->get(array('shop', 'catlog'));

Ради удобства, не более...

Или такое удобство - это заблуждение?
 

kvf77

Red Devil
Novice

гм - ну и в чем проблема первого способа?
в чем удобство тоже никак не понять

тогда в функции делай просто
return $_SESSION[$key1][$key2];
например
 

Crystal

Новичок
SiMM
А тут может быть магическая фраза "Заказчик требует". Вот я сейчас делаю абсолютно бесполезную(с моей точки зрения) небольшую баннерную систему. Она бесполезная и с точки зрения начальника. Но - заказчик требует и бабки платит. :)

-~{}~ 17.10.05 13:00:

Автор оригинала: Novice
Или такое удобство - это заблуждение?
Я не думаю что у тебя будет огромная вложенность массивов, так что наверно ты больше времени потратишь на написание такой функции, чем на написание кода в классическом варианте.
 

Novice

Новичок
Автор оригинала: kvf77

гм - ну и в чем проблема первого способа?
в чем удобство тоже никак не понять
в принципе ты прав )

тогда в функции делай просто
return $_SESSION[$key1][$key2];
например
Ну а все-таки, как сделать этот ретурн если неизвестно сколько ключей передали для получения переменной сессии?
 

kvf77

Red Devil
Novice

давай ты всетки оставишь свой академический интерес и сделаешь по-человечески? сам же потом париться будешь со своими дикими наворотами.

если ты всеравно в функцию передаешь массив каких-то ключей - почему нельзя передавать готовый массив - сразу все проблемы с неизвестным количеством ключей пропадут.
 

Фанат

oncle terrible
Команда форума
Crystal, адвокатом будешь в суде работать.
а здесь в твоих услугах никто не нуждается.
 

Crystal

Новичок
Фанат
При чем тут адвокатство? Ладно, прохавали, не будем оффтоп разводить.
 

SiMM

Новичок
> При чем тут адвокатство?
Не надо отвечать на вопросы, вам не предназначенные, за других.
 

Crystal

Новичок
SiMM
ОК, не буду. Правда этому правилу здесь ДАЛЕКО не все следуют. Включая того же Фаната. Ну да не мне судить.
 
Сверху