2013-07-03 141 views
0

我有一个来自twitter的std类对象,我想将这个ID数组值放到一个php变量$ ids中,其中$ids = (15761916,30144785,382747195,19399719)将std对象类转换为逗号分隔的字符串

我想象一下使用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 
) 
+0

你想要的结果是什么? – vikingmaster

+0

逗号分隔的字符串,如标题中所示。 –

+0

$ ids =(15761916,30144785,382747195,19399719) –

回答

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

谢谢。 8分钟后会接受答案 –

0

使用此功能将转换成数组

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

一个想要数组的值作为逗号分隔的字符串不是所有的变量。 –

+1

@DaGhostmanDimitrov vars包含整个数组根据需要使用.. –

+0

对不起m8 ..没看过编辑:) –

1

最简单的方式,我不知道这是否会工作(对不起!),因为我不倾向于使用了很多的stdClass的对象是这样的...是使用一个阵图...

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

也许类似的东西,不能完全肯定这是否是正确的语法......我PHO ne目前。给那一枪!

我做了一个lambda函数的习惯中,你可以很容易做到:

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

为扩展答案u有2个选项:)

月1日是实施Serializable Interface这样做U可以使用序列化功能,以获得所需的输出:

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

OR

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

和使用变为:

  1. 序列化:

    的serialize($ object_instance);

  2. __toString:

    打印$ object_instance;

都将要给你所需的输出,所以ü不需要添加额外的开销使用函数或内嵌脚本使用array_implode()

相关问题