获取对象或数组对象中的值 php

Get value in object or array object php

如何在 php 中从这个对象和这个对象数组中获取值名称?以及如何检查是对象还是数组对象然后获取值名称?

"director": {
"@type": "Person",
"url": "/name/nm0001104/",
"name": "Frank Darabont"}



"director": [
{
  "@type": "Person",
  "url": "/name/nm5156926/",
  "name": "Devon Downs"
},
{
  "@type": "Person",
  "url": "/name/nm2632302/",
  "name": "Kenny Gage"
}],

使用json_decode.

$names = [];
$data = json_decode($json, true);
if (true === isset($data['name'])) {
    $name[] = $data['name'];
    return $names;
}
foreach ($data as $director) {
    if (true === isset($director['name'])) {
        $names[] = $director['name'];
    }
}
return $names;
$json = '{
    "director": [
          {
            "@type": "Person",
            "url": "/name/nm5156926/",
            "name": "Devon Downs"
          },
          {
            "@type": "Person",
            "url": "/name/nm2632302/",
            "name": "Kenny Gage"
          }
  ]
  }';

  $names = [];
  $data = json_decode($json, true);

  if (true === isset($data['name'])) {
      $name[] = $data['name'];
      return $names;
  }
  foreach ($data as $director) {
    foreach($director as $itme){
      if (true === isset($itme['name'])) {
          $names[] = $itme['name'];
      }
    }

  }
  return $names;

输出:

Array
(
    [0] => Devon Downs
    [1] => Kenny Gage
)