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

  • Автор темы Автор темы Novice
  • Дата начала Дата начала

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, но выходит коряво...
 
Novice
Может написать рекурсивную функцию, которая получает очередной ключ и "текущий массив" и возвращает массив с этим ключом и значением в виде этого "текущего массива"?
Не уверен, что так получится, но что-то такое в голове крутится. А времени проверить нет.
 
Crystal

пусть он сначала ответит зачем ему такой сложный алгорритм - пусть опишет ход своих мыслей
 
> Ну может тут магическая фраза "Начальник требует":-)))
Ну тогда пусть начальник объяснит, зачем ему это ;)
 
Автор оригинала: 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'));

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

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

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

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

-~{}~ 17.10.05 13:00:

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

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

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

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

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