如何访问数组的对象(stdClass Object)成员/元素的属性? [复制]
Posted
技术标签:
【中文标题】如何访问数组的对象(stdClass Object)成员/元素的属性? [复制]【英文标题】:How to access a property of an object (stdClass Object) member/element of an array? [duplicate] 【发布时间】:2014-02-05 18:02:40 【问题描述】:在我的阵列上执行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;
***.com/questions/12277268/…
【参考方案1】:
要访问数组成员,请使用 $array['KEY'];
要访问对象成员,请使用 $obj->KEY;
访问对象数组中的对象成员:$array[0]
// 获取数组中的第一个对象$array[0]->KEY
// 然后访问其键
你也可以像这样遍历一个对象数组:
foreach ($arrayOfObjs as $key => $object)
echo $object->object_property;
将数组视为事物的集合。这是一个袋子,您可以在其中存储您的东西并给它们一个唯一的 ID(密钥)并使用该密钥访问它们(或从袋子中取出东西)。我想在这里保持简单,但是这个包也可以包含其他包:)
更新(这可能有助于人们更好地理解):
一个数组包含“key
”和“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'
【讨论】:
谢谢,我以为会很简单 嘿,我不明白 $value 在这里的用途 ..?.. 是的,我是 php 新手 .. 它是我们为查找键值而创建的新变量吗? @CodeLover 例如,如果我们有一个数组$a = ['someKey' => 'someValue'];
,那么如果您访问$a['someKey']
,您将返回someValue
。当我们使用 foreach 循环时,我们可以访问数组中每个成员的键和值。
@LuckySoni 嘿,我知道。但我想知道 echo $value->KEY ..它是做什么的 ..当我在代码中尝试时 ..它没有回应任何东西
如何比较 $key 和字符串?【参考方案2】:
试试这个,效果很好 -
$array = json_decode(json_encode($array), true);
【讨论】:
谢谢!为什么添加true
会转换为数组?
@Awena 是的,它用于返回数组。例如。 - json_decode('"foo":"bar"', true); returns array("foo" => "bar");
【参考方案3】:
试试这个:
echo $array[0]->id;
【讨论】:
试试这个答案在 *** 上的价值很低,因为它们对 OP 和未来的读者的教育作用很小。无论解决方案是否简单,请努力改进此答案。【参考方案4】:你有一个数组。 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);
【讨论】:
【参考方案5】:这样的事情怎么样。
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 );
reference
【讨论】:
以上是关于如何访问数组的对象(stdClass Object)成员/元素的属性? [复制]的主要内容,如果未能解决你的问题,请参考以下文章