如何访问数组的对象(stdClass Object)成员/元素的属性?

Ale*_*lex 42 php arrays stdclass

print_r()在我的阵列上做我得到以下内容:

Array ( 
    [0] => 
        stdClass Object 
        ( 
            [id] => 25 
            [time] => 2014-01-16 16:35:17 
            [fname] => 4 
            [text] => 5 
            [url] => 6 
        ) 
)
Run Code Online (Sandbox Code Playgroud)

如何访问数组中的特定值?由于stdClass对象,以下代码不起作用

echo $array['id'];
Run Code Online (Sandbox Code Playgroud)

Luc*_*oni 80

要访问您使用的阵列成员 $array['KEY'];

访问您使用的对象成员 $obj->KEY;

要访问对象数组中的对象成员:
$array[0]//获取数组中的第一个对象
$array[0]->KEY//然后访问其键

你也可以循环遍历一个对象数组,如下所示:

foreach ($arrayOfObjs as $key => $object) {
    echo $object->object_property;
}
Run Code Online (Sandbox Code Playgroud)

将数组视为一组事物.它是一个包,你可以存储你的东西,给他们一个唯一的ID(密钥),并使用该密钥访问它们(或从包中取出东西).我想在这里保持简单,但这个包也可以包含其他包:)

更新(这可能有助于人们更好地理解):

数组包含' key'和' value'对.为数组成员提供密钥是可选的,在这种情况下,它会自动分配一个以0开头的数字键,并为每个其他成员继续增加1.我们可以通过''来从数组中检索'值key'.

所以我们可以通过以下方式定义数组(关于键):

第一种方法:

$colorPallete = ['red', 'blue', 'green'];
Run Code Online (Sandbox Code Playgroud)

上面的数组将自动分配数字键.因此,分配给红色的键将为0,对于蓝色1,依此类推.

从上面的数组中获取值:

$colorPallete[0]; // will output 'red'
$colorPallete[1]; // will output 'blue'
$colorPallete[2]; // will output 'green'
Run Code Online (Sandbox Code Playgroud)

第二种方法:

$colorPallete = ['love' => 'red', 'trust' => 'blue', 'envy' => 'green']; // we expliicitely define the keys ourself.
Run Code Online (Sandbox Code Playgroud)

从上面的数组中获取值:

$colorPallete['love']; // will output 'red'
$colorPallete['trust']; // will output 'blue'
$colorPallete['envy']; // will output 'green'
Run Code Online (Sandbox Code Playgroud)


Roh*_*har 19

试试这个,工作正常 -

$array = json_decode(json_encode($array), true);
Run Code Online (Sandbox Code Playgroud)


gio*_*ima 9

试试这个:

echo $array[0]->id;
Run Code Online (Sandbox Code Playgroud)