如何访问数组的对象(stdClass Object)成员/元素的属性?更新(这可能有助于某人更好地理解):

2022-08-30 11:05:44

在我的数组上执行操作时,我得到以下内容:print_r()

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

如何访问数组中的特定值?下面的代码不起作用,因为 stdClass 对象

echo $array['id'];

答案 1

访问您使用的数组成员$array['KEY'];

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

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

您还可以循环访问对象数组,如下所示:

foreach ($arrayOfObjs as $key => $object) {
    echo $object->object_property;
}

将数组视为事物的集合。这是一个袋子,您可以在其中存储您的物品并给他们一个唯一的ID(密钥),并使用该密钥访问它们(或从包中取出东西)。我想在这里保持简单,但是这个袋子可以容纳其他袋子太:)

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

数组包含“”和“”对。为数组成员提供键是可选的,在这种情况下,它会自动分配一个数字键,该数字键以0开头,并为每个附加成员继续递增1。我们可以从数组中检索一个'值',因为它是''。keyvaluekey

因此,我们可以通过以下方式定义数组(相对于键):

第一种方法:

$colorPallete = ['red', 'blue', 'green'];

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

从上面的数组中获取值:

$colorPallete[0]; // will output 'red'
$colorPallete[1]; // will output 'blue'
$colorPallete[2]; // will output 'green'

第二种方法:

$colorPallete = ['love' => 'red', 'trust' => 'blue', 'envy' => 'green']; // we expliicitely define the keys ourself.

从上面的数组中获取值:

$colorPallete['love']; // will output 'red'
$colorPallete['trust']; // will output 'blue'
$colorPallete['envy']; // will output 'green'

答案 2

试试这个,工作正常 -

$array = json_decode(json_encode($array), true);