@Shimpanze

Как получить все значения id из вложенных объектов?

Есть объект:

object(stdClass)#3 (13) {
  ["id"]=>
  int(111)
  ["attachments"]=>
  array(1) {
    [0]=>
    object(stdClass)#4 (2) {
      ["photo"]=>
      object(stdClass)#5 (9) {
        ["id"]=>
        int(222)
          ...
          ...

Как получить все id на любой глубине? На выходе нужен массив из id [111, 222].
  • Вопрос задан
  • 137 просмотров
Решения вопроса 1
0xD34F
@0xD34F
function getIds($obj) {
  $ids = [];

  if (isset($obj->id)) {
    $ids[] = $obj->id;
  }

  if (is_object($obj) || is_array($obj)) {
    foreach ($obj as $val) {
      array_push($ids, ...getIds($val));
    }
  }

  return $ids;
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы