Как срастить два массива и вывести значения, которые соответствуют одному из массива

Господа спасайте, есть 2 массива (main - все данные и header - где хранятся только ключи нашего main), как отобразить только то, что у нас есть в header ? немного предисловия, работаю с библиотекой ag-grid есть там встроенная функция скрыть столбцы, но самое что интересное, им просто добавляется атрибут hidden - true и я тут решил передавать данные для сохранения именно того, что отображается, я выхватил заголовки с атрибутом hidden - false и поместил в массив, далее поместил в массив весь массив и передал в контроллер. Вот тут уже дилемма, как их срастить, учитывая что я передаю value, что является ключом для всего моего массива использую laravel+ag-grid скрин вывода dd


Ответы (1 шт):

Автор решения: teran

примерно так должно получится у вас

$filterKeys = array_flip($header);
$result = array_map(function($m) use ($fiterKeys){ 
                 return array_intersect_key($m, $filterKeys)
             }, $main);

можно еще как-нить переиначить

$tmp =  array_fill(1, count($main), array_flip($header));
$result = array_map('array_intersect_key', $main, $tmp);
→ Ссылка