Получить значение в объекте или массиве php - PullRequest
0 голосов
/ 23 апреля 2020

Как в 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"
}],

Ответы [ 2 ]

1 голос
/ 23 апреля 2020
$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
)
0 голосов
/ 23 апреля 2020

использовать 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...