0

我有一个来自 twitter 的 std 类对象,我想获取 ids 数组值并将它们放在 php 变量 $ids where 中$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

4 回答 4

4
$ids = "(" . implode(",", $object->ids) . ")";
于 2013-07-03T16:38:19.307 回答
1

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

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

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

我按照习惯把它变成了一个 lambda 函数,你可以很容易地做到:

$ids = implode (",", $object->ids);
于 2013-07-03T16:42:32.310 回答
0

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

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

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

或者

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

用法变为:

  1. 可序列化:

    序列化($object_instance);

  2. __toString:

    打印 $object_instance;

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

于 2013-07-03T17:02:16.400 回答
0

使用此函数转换为数组

$vars = get_object_vars ( $Obj );
print_r ( $vars );
$ids = implode (",", $vars[ids]);
于 2013-07-03T16:41:36.960 回答