【问题标题】:Multidimensional array with object and arrays具有对象和数组的多维数组
【发布时间】:2017-12-04 09:31:46
【问题描述】:

我在访问数组中的索引 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
                )

        )

)

【问题讨论】:

  • 您可以使用[index] 表示法访问数组,那么您是否尝试过$selection = $menu_selection[1]->vl
  • $menu_selection[1]->vl[0]
  • 我试过....错误是未定义的偏移量 1。
  • 我认为索引不是数组,它是数组中的一个对象...那我怎么访问它呢?

标签: php arrays object multidimensional-array


【解决方案1】:

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

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

如果访问值的方式无关紧要,它应该是:

$menu_selection[1]->v1;

【讨论】:

    【解决方案2】:

    你犯了两个错误。

    $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 属性的原因。

    【讨论】:

      猜你喜欢
      • 2020-10-11
      • 2012-07-23
      • 1970-01-01
      • 1970-01-01
      • 2016-12-09
      • 2015-12-30
      • 1970-01-01
      • 2022-01-19
      • 2018-08-09
      相关资源
      最近更新 更多