$value) { if (is_array($value)) { $result = array_merge($result, array_flatten($value)); } else { $result = array_merge($result, array($key => $value)); } } return $result; } function getSingleCategories($pages) { $categoriesRawFields = $pages->pluck('category'); // return ["A, B, C", "A, B"] $splittedCategoriesFields = array_map(function($field) { return explode(',', $field); }, $categoriesRawFields); // return '[["A", "B", "C",], ["A", "B"]] $flattenedCategories = array_flatten($splittedCategoriesFields); $trimmed = array_map('trim', $flattenedCategories); $filtered = array_filter($trimmed, fn($v) => $v !== ''); $filters = array_unique($filtered); return $filters; } return [ 'categories' => getSingleCategories($page->children()) ]; };