将std对象类转换为逗号分隔的字符串

时间:2013-07-03 16:35:37

标签: php stdclass

我有来自twitter的std类对象,我想获取id数组值并将它们放在php变量$ ids $ids = (15761916,30144785,382747195,19399719)中。

我想使用for循环并使用phps implode,但我不确定如何去做。

stdClass Object
(
  [ids] => Array
    (
        [0] => 15761916
        [1] => 30144785
        [2] => 382747195
        [3] => 19399719

    )

  [next_cursor] => 0
  [next_cursor_str] => 0
  [previous_cursor] => 0
  [previous_cursor_str] => 0
) 

4 个答案:

答案 0 :(得分:4)

$ids = "(" . implode(",", $object->ids) . ")";

答案 1 :(得分:1)

最简单的方法,我不知道这是否有效(对不起!),因为我不倾向于使用这样的很多stdClass对象...将使用数组映射..

$ids = function (stdClass Object $object) {
  return implode (",", $object->ids);
};

也许是这样的,不完全确定这是否是正确的语法...目前在我的手机上。试一试!

我用habbit做了一个lambda函数,你可以轻松做到:

$ids = implode (",", $object->ids);

答案 2 :(得分:0)

使用此函数转换为数组

$vars = get_object_vars ( $Obj );
print_r ( $vars );
$ids = implode (",", $vars[ids]);

答案 3 :(得分:0)

作为一个扩展答案,你有两个选择:)

第一个是通过这样做实现Serializable Interface你可以使用序列化函数来获得所需的输出:

public function serialize() {
    return array_implode(',', $this->ids);
}

OR

public function __toString() {
    return array_implode(',', $this->ids);
}

,用法变为:

  1. 序列化:

    的serialize($ object_instance);

  2. __的toString:

    print $ object_instance;

  3. 两者都会给你所需的输出,所以你不需要增加额外的开销来使用函数或在内联脚本中使用array_implode()