За последние 24 часа нас посетили 53548 программистов и 1712 роботов. Сейчас ищут 880 программистов ...

Доступ к элементу многомерного массива

Тема в разделе "PHP для новичков", создана пользователем Romzess, 10 апр 2012.

  1. Romzess

    Romzess Активный пользователь

    С нами с:
    11 июн 2008
    Сообщения:
    30
    Симпатии:
    0
    Доброго время суток!
    У меня есть многомерный массив, я получаю переменную из запроса вот такого вида:
    Код (Text):
    1.  
    2. <?php
    3. // допустим это элемент массива
    4. $_POST = array("user.info.access"=>true);
    5. // мне нужно это преобразовать в что-то такое:
    6. $array['user']['info']['acces'] = true;
    7.  
    8. ?>
    ЗЫ : eval не предлагать)
     
  2. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    круто...а покажи то, что тебе отдает такую переменную "пост"
     
  3. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    <input type="submit" name="user.info.access"> например
     
  4. Romzess

    Romzess Активный пользователь

    С нами с:
    11 июн 2008
    Сообщения:
    30
    Симпатии:
    0
    Это был пример))
     
  5. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Вроде работает как хочешь )
    Код (PHP):
    1. <pre>
    2. <?php
    3. $_POST = array(
    4.     'user.info.access' => true,
    5.     'user.info.name' => 'asd',
    6.     'user.info.id' => 123,
    7.     'user.session_id' => 'asdasdasdasdasdasdasdasd'
    8. );
    9. $array = array();
    10. foreach($_POST as $key => $value) {
    11.     $path = explode('.', $key);
    12.     $current = &$array;
    13.     foreach($path as $section) {
    14.         if(!isset($current[$section]))
    15.             $current[$section] = array();
    16.         $current = &$current[$section];
    17.     }
    18.     $current = $value;
    19. }
    20. print_r($array);
    21. ?>
    22. </pre>
    Но с евалом, пожалуй, проще
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    я всегда писал name="user[info][access]"... надо будет попробовать с точками