Распечатка PHP-массива типа object

#php #arrays

#php #массивы

Вопрос:

У меня есть массив, который выглядит следующим образом:

 Array
(
    [0] => stdClass Object
        (
            [user_id] => 10
            [date_modified] => 2010-07-25 01:51:48
        )

    [1] => stdClass Object
        (
            [user_id] => 16
            [date_modified] => 2010-07-26 14:37:24
        )

    [2] => stdClass Object
        (
            [user_id] => 27
            [date_modified] => 2010-07-26 16:49:17
        )

    [3] => stdClass Object
        (
            [user_id] => 79
            [date_modified] => 2010-08-08 18:53:20
        )

)
  

и что мне нужно сделать, это распечатать идентификатор пользователя, разделенный запятой, так:

10, 16, 27, 79

Я предполагаю, что это будет в цикле for, но я ищу наиболее эффективный способ сделать это на PHP

О, и имя массива такое: $mArray

Я пробовал это:

 foreach($mArray as $k => $cur)
{
    echo $cur['user_id'];
    echo ',';
}
  

который предлагали другие.

Однако я продолжаю получать эту ошибку:

Неустранимая ошибка: не удается использовать объект типа stdClass в качестве массива в.

Я думаю, это потому, что этот массив не является типичным массивом, поэтому для него требуется какой-то другой синтаксис?

Ответ №1:

Каждый элемент массива является (анонимным) объектом и user_id является свойством. Для доступа к нему используйте синтаксис доступа к свойству объекта ( -> ):

 foreach($mArray as $k => $cur)
{
    echo $cur->user_id;
    echo ',';
}
  

Комментарии:

1. почему $mArray as $k => $cur почему бы не $mArray as $cur просто

2. @Ibrahim Ну, нет причин. Просто скопировал пример OPs.

Ответ №2:

 foreach ($mArray as $cur){
   echo $cur->user_id;
}
  

вы можете сделать это таким образом, поскольку работаете с объектами

Ответ №3:

Используйте это, если хотите избежать запятой в конце ( , ).

 $ids = array();
foreach ($array as $obj){
    $ids[] = $obj->user_id;
}

echo join(', ', $ids);
  

Ответ №4:

Довольно близко…

 foreach($mArrray as $k => $cur)
{
  echo $cur->user_id.', ';
}