Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Php cannot use object stdClass as array [closed]

Tags:

json

object

php

Derp. Getting 'Fatal error: Cannot use object of type stdClass as array'

I dunno what I'm doing wrong here:

foreach ($json->result->items[$key]->attributes->attribute as $attrib => $val) 
{
    if($json->result->items[$key]->attributes->attribute[$attrib]->name == 'cannot_trade')
    {
        $notrade=1;
        echo 'Item ' . $key . ' is not tradeable' . $br;
    }
}

And here's the data:

[attributes] => stdClass Object
(
  [attribute] => Array
  (
    [0] => stdClass Object
    (
      [name] => custom employee number
      [class] => set_employee_number
      [value] => 0
    )
    [1] => stdClass Object
    (
      [name] => cannot trade
      [class] => cannot_trade
      [value] => 1
    )
  )
)

Essentially, I'm trying to test to see if the 'attribute' array has the cannot_trade thingy. Sometimes, the parent object doesn't have an 'attributes' object

like image 791
nerganerganerga Avatar asked Dec 28 '22 22:12

nerganerganerga


1 Answers

You can parse your JSON as an array if you want:

// These both give you an array:
$json = json_decode($whatever, true);
$json = (array) json_decode($whatever);
like image 181
sdleihssirhc Avatar answered Dec 31 '22 14:12

sdleihssirhc