如何从PHP对象数组中检索值
我有一个变量“$terms”,其内容/结构如下:如何从PHP对象数组中检索值,php,wordpress,Php,Wordpress,我有一个变量“$terms”,其内容/结构如下: Array ( [507] => stdClass Object ( [term_id] => 507 [name] => Blog [slug] => blog [term_group] => 0 [term_taxonomy_id] => 679 [taxonomy] => blog-categor
Array
(
[507] => stdClass Object
(
[term_id] => 507
[name] => Blog
[slug] => blog
[term_group] => 0
[term_taxonomy_id] => 679
[taxonomy] => blog-category
[description] =>
[parent] => 0
[count] => 3
[object_id] => 13665
)
[494] => stdClass Object
(
[term_id] => 494
[name] => ZMisc
[slug] => misc
[term_group] => 0
[term_taxonomy_id] => 662
[taxonomy] => blog-category
[description] =>
[parent] => 0
[count] => 5
[object_id] => 13665
)
)
我需要得到第一个对象名称的值。所以在这个例子中,我需要检索“Blog”的值。此数组当前存储为$terms。我尝试了$terms[0]->name以及其他一些sytnax变体,但无法获得我需要的内容。为了检索数组的第一个元素,可以执行以下操作:
var_dump(reset($terms));
有很多方法可以做到这一点:
current(reset($terms))->name;
reset($terms)->name; //thanks to comment from grossvogel, current is not needed
array_shift(array_values($terms))->name;
如果您不需要修改原始数组,它可以像
array_shift($terms)->name;
正如您所见,对象存储在507和494中,因此您应该尝试$terms[507]->nameduplicate,我相信他的意思是在不事先知道索引的情况下获取数组的第一个元素。@Ronnie,链接问题中的问题是试图在
stdClass
实例上使用[]
。根据最后一句中对->name
的引用,OP似乎没有这个问题。+1请注意,第一个示例中对current
的调用是不必要的,因为已经返回了第一个元素。谢谢你,伙计,你教会了我新东西,我一直在使用重置功能,但从未意识到它会返回第一个元素。重置工作完美,谢谢。有很多新的PHP函数需要研究。谢谢大家。