Как объединить 3 массива из файлов после цикла foreach?

Рейтинг: 0Ответов: 0Опубликовано: 13.04.2023

Всем привет. Подскажите пожалуйста, каким образом можно объединить несколько массивов в один через функцию array_merge() после цикла foreach? Пишу такую функцию:

public function getFilesGenres() {
    $files = scandir(__DIR__.'/genres');
    $config = config('songscrud.genres.langs');

    $array = [];
    foreach($config as $lang) {
        foreach ($files as $file)
        {
            if(preg_match('/\.(php)/', $file))
            {
                $path = __DIR__.'/genres/' . $file;
                $ext = pathinfo($file, PATHINFO_FILENAME);

                if ($lang === $ext) {
                    $array[$lang] = require($path);
                    $array = array_merge($array[$lang]);
                }
            }
        }

    }

    return $array;
}

Записываю каждый массив в массив с языком типа en, ru, de. В итоге выдаёт только массив из первого файла и ничего не объединяется. Пробовал записывать так:

        $array1 = ['id' => 1, 'parent_id' => NULL, 'lft' => NULL, 'rgt' => NULL, 'depth' => 1, 'name_ru' => 'Народная музыка', 'slug_ru' => 'народная-музыка', 'translit_ru' => 'narodnaja-muzyka'];
        $array2 = ['id' => 1, 'parent_id' => NULL, 'lft' => NULL, 'rgt' => NULL, 'depth' => 1, 'name_de' => 'Ethnische Musik', 'slug_de' => 'ethnische-musik'];
        $array3 = ['id' => 1, 'parent_id' => NULL, 'lft' => NULL, 'rgt' => NULL, 'depth' => 1, 'name_en' => 'Ethnic music', 'slug_en' => 'ethnic-music'];

        return array_merge($array1, $array2, $array3);

введите сюда описание изображения

Такой код работает хорошо и объединяет всё в один массив. Как объединять массивы динамично через файлы с массивами используя цикл?

Ответы

Ответов пока нет.