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



在我的数组上执行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'];

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

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

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

你也可以在一个对象数组上循环,比如:

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

将数组想象为事物的集合。这是一个袋子,你可以在里面存放你的东西,给他们一个唯一的id(密钥),然后用这个密钥访问它们(或把东西从袋子里拿出来)。我想在这里保持简单,但这个袋子也可以装其他袋子:)

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

数组包含"key"one_answers"value"对。为数组成员提供一个键是可选的,在这种情况下,它会自动分配一个数字键,该键以0开头,并为每个额外的成员保持递增1。我们可以通过"key"从数组中检索一个"值"。

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

第一种方法:

$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'

试试这个,工作正常-

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

试试这个:

echo $array[0]->id;

您有一个数组。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);
}

这样的东西怎么样。

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 );

参考

最新更新