PHP массив объектов с массивами внутри. Объединить эти

#php #arrays #array-merge

#php #массивы #массив-слияние

Вопрос:

У меня есть массив объектов. Эти объекты имеют разные ключи с массивами в качестве значения. В качестве вывода мне нужен объединенный массив всех этих массивов. Пример:

  [
  {
    id: 1,
    datas: [a,b,c]
  }, 
  {
    id: 2,
    datas: [d,e,f]
  },
  {
    id: 3,
    datas: [f,g,h]
  }
]
 

В качестве вывода мне нужно:
[a,b,c,d,e,f,g,h]
Я пока не смог найти простой однострочник. Я мог бы выполнить итерацию по массиву и объединить все массивы в новый. Но да, мне нравится один лайнер, и, насколько я знаю PHP, для этого есть быстрый способ

Комментарии:

1. вы просите pythonic one liner в PHP?

2. Под капотом любой один лайнер будет делать то же самое, что и ваш алгоритм — повторять и объединять все эти массивы вместе. Какая-либо конкретная причина, по которой вы настаиваете на однострочном? Вы говорите «быстрый способ», но я не знаю, что это означает для вас — код, который выполняется быстрее, или просто что-то, что требует меньше ввода?

Ответ №1:

Ваш oneliner:

 print_r(array_merge(...array_column($array, 'datas')));
 

Рабочая скрипка.

Комментарии:

1. Это то, что я искал. Спасибо!

Ответ №2:

Используйте эту функцию array_push();