2

i have an array wk and for this output is

[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
                        )

                )

        )

but i want to add new index in object ...how can i add it? any idea ...i am trying to do last two days but no any result

i want output like this :

[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
                        )

                )
        )

i used array_walk and array_push, array_merge function...

i got this error for all above functions

Fatal error: Uncaught Error: Cannot use object of type stdClass as array in

Get Off My Lawn
  • 34,175
  • 38
  • 176
  • 338
JYOTI SAPARIYA
  • 384
  • 2
  • 13

2 Answers2

1

You need to understand that stdClass Object uses class variable names. So it will not be possible to use number 1 as a variable name. Instead, go for something like:

...
[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
      )
...

Replace the number with a valid variable name, e.g one as above.

To add new element, you can call:

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

Which is easily accessible via wk[1][2]->one

u2tope
  • 48
  • 1
  • 6
-1

You could solve this in two ways:

1) Convert object to array

2) Assign new array to the object, naming it "persons" or the like:

$wk[1][2]->persons = array(); // Or via foreach, etc.

and then use array_push to insert into that array:

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

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

                    )

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

            )
    )
Marcus Kober
  • 106
  • 9