我正在开发一个项目来获取数组的名称。 这些数组似乎是多维的,还有作为stdclass对象的额外好处。我试图从提供的数组中选择一个键,但似乎没有运气选择它们。
echo($response->array[shoecompany]->array[1]->name);
来自此处的信息
stdClass Object
(
[shoe] => shoemaker
[shoecompany] => Array
(
[0] => stdClass Object
(
[shoenumber] => 1
[name] => Blank
[1] => stdClass Object
(
[shoenumber] => 2
[name] => demo
)
[2] => stdClass Object
(
[shoenumber] => certificate
[name] => certofsale
)
)
)
我所做的一切似乎都没有提供我需要的信息。所说的任何方式都可以拉动。
答案 0 :(得分:2)
这些数组似乎是多维的,还有作为stdclass对象的额外好处。
数组和对象不是一回事。
如果你感到好奇,我会让你更多地了解两者的具体细节。
关于访问权限,您可以使用括号 - “ [] ” - 当您想要访问数组中的某些内容和箭头时 - “ - > ” - 当您想要访问对象的属性:
$array['key'];
$object->property;
在你的情况下,由于只有$response
和条目showcompany
中的条目 - 我认为这是一个错字 - 是对象,你应该写的是:
$response->shoecompany[1]->name;
这为您提供了实际应用:
foreach ($response->shoecompany as $val) {
echo $val->shoenumber, ' : ', $val->name, '<br>'; // Or whatever you want to print, that's for the sake of providing an example
}
如果您更方便地处理数组,您还可以使用get_object_vars()
将对象属性转换为数组:
$response = get_object_vars($response);
答案 1 :(得分:1)
代码应该是:
echo $response->shoecomapny[1]->name;
简而言之,要在对象内选择您需要使用的键&#34; - &gt;&#34;运算符和选择内部数组键使用&#34; []&#34;。