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

Php 如何访问数组的对象(stdClass对象)成员/元素的属性?,php,arrays,stdclass,Php,Arrays,Stdclass,在我的阵列上执行print\r(),我得到以下结果: Array ( [0] => stdClass Object ( [id] => 25 [time] => 2014-01-16 16:35:17 [fname] => 4 [text] => 5 [url] => 6

在我的阵列上执行
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'];
试试这个:

echo $array[0]->id;

要访问数组成员,请使用
$array['KEY']

要访问对象成员,请使用
$obj->KEY

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

您也可以在对象数组上循环,如下所示:

foreach ($arrayOfObjs as $key => $object) {
    echo $object->object_property;
}
将数组视为事物的集合。它是一个袋子,你可以把你的东西放在里面,给他们一个唯一的id(钥匙),然后用钥匙取东西(或者把东西从袋子里拿出来)。我想让这里的事情简单一些,但这个包也可以装其他的包:)

更新(这可能有助于某人更好地理解): 数组包含“
”和“
”对。为数组成员提供键是可选的,在这种情况下,会自动为其分配一个数字键,该数字键从0开始,并为每个附加成员不断递增1。我们可以通过数组的“
键”
”从数组中检索“值”

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

第一种方法: 上述数组将自动分配数字键。因此,分配给红色的键是0,分配给蓝色的键是1,依此类推

从上述数组中获取值: 第二种方法: 从上述数组中获取值:
你有一个数组。PHP数组基本上是一个“事物列表”。你的数组中有一个东西。那是一个标准类。您需要从阵列中移除该对象

$object = array_shift($array);
var_dump($object->id);
或者通过数组中的索引引用对象

var_dump( $array[0]->id );
或者,如果您不确定数组中有多少内容,请在数组上循环

foreach($array as $key=>$value)
{
    var_dump($value->id);
    var_dump($array[$key]->id);
}

试试这个,工作很好-

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

像这样的怎么样

function objectToArray( $object ){
   if( !is_object( $object ) && !is_array( $object ) ){
    return $object;
 }
if( is_object( $object ) ){
    $object = get_object_vars( $object );
}
    return array_map( 'objectToArray', $object );
}
并使用对象调用此函数

$array = objectToArray( $yourObject );

echo$array[0]->id谢谢,我以为这会很简单。我不明白$value在这里的用法。是的,我是php新手。我们创建它是为了查找键值吗?@CodeLover如果我们有一个数组
$a=['someKey'=>'someValue']
然后,如果访问
$a['someKey']
,将返回
someValue
。当我们使用foreach循环时,我们可以访问数组中每个成员的键和值。@LuckySoni嘿,我知道了。但我想知道echo$value->key。它是做什么的。当我在代码中尝试时。它没有任何回显。我如何将$key与字符串进行比较?谢谢!为什么添加
true
会转换为数组?@Awena是的,它用于返回数组。例如-
json_解码(“{”foo:“bar”}”,true);返回数组(“foo”=>“bar”)试试这个答案对StackOverflow的价值很低,因为它们对OP和未来读者的教育作用很小。无论解决方案多么简单,请努力改进此答案。
foreach($array as $key=>$value)
{
    var_dump($value->id);
    var_dump($array[$key]->id);
}
$array = json_decode(json_encode($array), true);
function objectToArray( $object ){
   if( !is_object( $object ) && !is_array( $object ) ){
    return $object;
 }
if( is_object( $object ) ){
    $object = get_object_vars( $object );
}
    return array_map( 'objectToArray', $object );
}
$array = objectToArray( $yourObject );