PHP数组和stdClass对象

时间:2017-08-23 10:50:09

标签: php arrays multidimensional-array

我正在开发一个项目来获取数组的名称。 这些数组似乎是多维的,还有作为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

                )

        )

)

我所做的一切似乎都没有提供我需要的信息。所说的任何方式都可以拉动。

2 个答案:

答案 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;。