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

Как обратиться к объекту в массиве?

Тема в разделе "Прочие вопросы по PHP", создана пользователем Daniil_z, 21 ноя 2014.

  1. Daniil_z

    Daniil_z Новичок

    С нами с:
    21 ноя 2014
    Сообщения:
    2
    Симпатии:
    0
    Функция var_dump вывело следующие.
    array(5) { ["date"]=> int(1416614400) ["events"]=> array(1) { [1416693600]=> object(EM_Event)#4553 (98) { ["event_id"]=> string(1) "2"

    Как мне вывести значение event_id
     
  2. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    $a - ваш массив, который длиной 5
    $a['events'] - ключ массива событий в вашем массиве
    $a['events']['1416693600'] - ключ в массиве событий. его значение - объект класса EM_Event у которого есть как минимум одно публичное свойство
    $a['events']['1416693600']->event_id - собственно это публичное свойство
    echo $a['events']['1416693600']->event_id - вывод значения этого свойства.

    вангую проблему с ключами в массиве $a['events']...
     
  3. Daniil_z

    Daniil_z Новичок

    С нами с:
    21 ноя 2014
    Сообщения:
    2
    Симпатии:
    0
    . Это все находится в цикле foreach. И массив ['1416693600'], он переменная(как-то тупо я выразился.). Он же ["date"]=> int(1416614400). Можно ли как-то обратиться к свойству объекта, через переменную?
     
  4. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    наверное можно. что вы под этим подразумеваете? мб просто кусок кода покажете?
     
  5. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    в пхп можно обратиться через как угодно к чему угодно, если это находится в нужной зоне видимости.
     
  6. deblogger

    deblogger Новичок

    С нами с:
    11 июл 2013
    Сообщения:
    200
    Симпатии:
    0
    Ему нужен синтаксис

    $value = $var['events'][1416693600]->event_id; // если ничего не пропустил

    var_dump не в этом контексте применяется, в этом контексте применяется print_r(); Но видно хорошо будет только в кодах (в консоли если по аяксу), поэтому чтоб на странице было нормально видно надо завернуть

    Код (PHP):
    1. const PAGE_ENCODING        ='UTF-8';
    2.  
    3. function htmlents($value){
    4.     return htmlentities($value,ENT_QUOTES,PAGE_ENCODING,false);
    5. }
    6.  
    7. function echoit($msg) {
    8.     echo '<br><pre>';
    9.     if($msg)
    10.         echo htmlents(print_r($msg, true));
    11.     else
    12.         var_dump($msg);
    13.     echo '</pre><br>';
    14. }
    15.  
    Блин, оказывается столько зависимостей у такой простой функции...