具有对象和数组的多维数组

时间:2017-12-04 09:31:46

标签: php arrays object multidimensional-array

我在访问数组中的索引1时遇到了问题。 我如何访问index 1

试图像这样访问。

$selection = $menu_selection->{1}->vl

但我显示未定义的偏移误差。任何人都可以帮助我。

Array
(
    [1] => stdClass Object
        (
            [vl] => Array
                (
                    [0] => 1
                    [1] => 2
                )

            [op] => Array
                (
                    [0] => O
                    [1] => O
                )

        )

    [189] => Array
        (
            [vl] => Array
                (
                    [0] => 1
                )

        )

)

2 个答案:

答案 0 :(得分:0)

从PHP 7.2开始,您可以这样做(代价高昂):

((object) $menu_selection)->{1}->v1;

如果获取价值的方式并不重要,那么它应该是:

$menu_selection[1]->v1;

答案 1 :(得分:0)

你犯了两个错误。

$selection = $menu_selection->{1}->vl

第一个错误是访问第一个数组位置,你必须做这样的事情$selection = $menu_selection[1]。 第二个错误是使用->,此表示法用于访问对象属性和调用对象函数。

要访问索引1,您可以执行以下操作:

$selection = $menu_selection[1]

要从数组1访问vl,请尝试:

$selection = $menu_selection[1]->vl

正如你在var_dump中看到的那样,$ menu_selection [1]是stdClass类型的对象,这就是你需要->来访问vl属性的原因。