Php 如何在对象数组中设置索引?

Php 如何在对象数组中设置索引?,php,arrays,arraylist,multidimensional-array,Php,Arrays,Arraylist,Multidimensional Array,我有一个数组wk,对于这个输出 [wk] => Array ( [1] => Array ( [2] => stdClass Object ( [qty] => 2 [id] => 2

我有一个数组wk,对于这个输出

[wk] => Array
        (
            [1] => Array
                (
                    [2] => stdClass Object
                        (
                            [qty] => 2
                            [id] => 2
                            [name] => Single 1 Tag Innenraum 2
                        )

                    [3] => stdClass Object
                        (
                            [qty] => 1
                            [id] => 3
                            [name] => test1
                        )

                )

        )
但我想在对象中添加新索引…如何添加它?任何想法…我试图做最后两天,但没有任何结果

我想要这样的输出:

[wk] => Array
        (
            [1] => Array
                (
                    [2] => stdClass Object
                        (
                            [qty] => 2
                            [id] => 2
                            [name] => Single 1 Tag Innenraum 2
                            [1] => Array(
                                    [name] => jiya
                                    [sirname] => rathod
                                        )
                            [2] => Array(
                                    [name] => pinal
                                    [sirname] => rathod
                                        )

                        )

                    [3] => stdClass Object
                        (
                            [qty] => 1
                            [id] => 3
                            [name] => test1
                        )

                )
        )
我使用了array\u walk和array\u push,array\u merge函数

我得到了以上所有函数的这个错误


致命错误:未捕获错误:无法在中使用stdClass类型的对象作为数组

您可以通过两种方法解决此问题:

1) 将对象转换为数组

2) 将新数组指定给对象,并将其命名为“persons”或类似名称:

$wk[1][2]->persons = array(); // Or via foreach, etc.
然后使用array_push插入该数组:

array_push($wk[1][2]->persons, '...');


您需要了解
stdClass对象
使用类变量名。因此,不可能使用数字1作为变量名。相反,你可以选择以下方式:

...
[2] => stdClass Object
 (
  [qty] => 2
  [id] => 2
  [name] => Single 1 Tag Innenraum 2
  [one] => Array(
        [name] => jiya
        [sirname] => rathod
      )
  [two] => Array(
        [name] => jiya
        [sirname] => rathod
      )
...
将数字替换为有效的变量名,例如如上所述的
one

要添加新元素,可以调用:

wk[1][2]->one = Array(
        [name] => jiya
        [sirname] => rathod
      );

可以通过
wk[1][2]->one

轻松访问。如果需要javascript,请添加一个文字符号示例。将对象转换为数组,然后添加IndexTest is to json\u对对象进行编码并解码回数组。检查此链接
wk[1][2]->one = Array(
        [name] => jiya
        [sirname] => rathod
      );