打印出类型对象的PHP数组

时间:2011-05-07 21:28:21

标签: php arrays

我有一个如下所示的数组:

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
        )

)

我需要做的是打印出用户ID的逗号分隔:

10,16,27,79

我猜它是在for循环中,但我正在寻找在PHP中实现它的最有效方法

哦,数组名称是:$ mArray

我试过这个:

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

其他人的建议。

但是我一直收到这个错误:

致命错误:无法使用stdClass类型的对象作为数组。

我认为这是因为这个数组不是典型的数组所以它需要一些不同的语法?

4 个答案:

答案 0 :(得分:2)

每个数组元素都是(匿名)对象,user_id是属性。使用对象属性访问语法(->)来访问它:

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

答案 1 :(得分:2)

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

你可以这样做,因为你正在使用对象

答案 2 :(得分:2)

如果您想避免使用逗号(,)。

,请使用此选项
$ids = array();
foreach ($array as $obj){
    $ids[] = $obj->user_id;
}

echo join(', ', $ids);

答案 3 :(得分:1)

非常接近......

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