public function categoryAction() { $categories = $this->productCategoryModel->getList(); $categoryFilters = $this->productCategoryFilterModel->getList(); $categoryFilterOptions = $this->productCategoryFilterOptionModel->getList(); $categories = Utility::recreateIndex($categories, 'productCategoryID'); $categoryFilters = Utility::recreateIndex($categoryFilters, 'productCategoryFilterID'); $categoryFilterOptions = Utility::recreateIndex($categoryFilterOptions, 'productCategoryFilterOptionID'); foreach ($categoryFilterOptions as $k => $v) { $categoryFilters[$v['productCategoryFilterID']]['options'][$k] = $v; } foreach ($categoryFilters as $k => $v) { $categories[$v['productCategoryID']]['filters'][$k] = $v; } $result = array(); foreach ($categories as $k => $v) { $tmp = array(); if (!empty($v['filters'])) { foreach ($v['filters'] as $sk => $sv) { $tmp2 = array(); if (!empty($sv['options'])) { foreach ($sv['options'] as $ssk => $ssv) { $tmp2 = array('optionID' => $ssk, 'optionName' => $ssv['optionName']); } } $tmp[] = array('filterID' => $sk, 'filterName' => $sv['filterName'], 'options' => $tmp2); } } $result[] = array('categoryID' => $k, 'categoryName' => $v['categoryName'], 'filters' => $tmp); } return $this->response(ApiSuccess::COMMON_SUCCESS, ApiSuccess::COMMON_SUCCESS_MSG, $result); }