2014-07-24 2 views
0

카테고리하위 메뉴 레스토랑 메뉴 용.Codeigniter : 카테고리 및 하위 카테고리

price, description카테고리 같은 추가 필드가하위 범주는 idname 있습니다. 그래서 나는이 두 테이블을 가지고 가기로 결정했습니다.

Categories -> ID, NAME 
Subcategoires -> ID, NAME, DESCRIPTION, PRICE, CATEGORIES_ID, 

이제 멋진 모양의 메뉴를 만들기 위해 구조화하려고합니다.

저는 Codeigniter에도 DataMapper를 사용하고 있습니다.

지금까지 나는이 있습니다

$categories = new Category_model(); 
$subcategories = new Subcategory_model(); 
$categories->get(); 
$subcategories->get(); 

$recent_categories = array(); 
$recent_subcategories = array(); 

foreach ($categories as $category) 
{ 
    $single_category = array 
    (
     'category_id' => $category->id, 
     'category_name' => $category->name, 
    ); 

    foreach ($subcategories as $subcategory) 
    { 
     if ($subcategory->categories_id == $category->id) 
     { 
      $single_subcategory = array 
      (
       'subcategory_id' => $subcategory->id, 
       'subcategory_name' => $subcategory->name, 
       'subcategory_description' => $subcategory->description, 
       'subcategory_price' => $subcategory->price, 
      ); 
     } 
    } 

    array_push($recent_categories, $single_category); 
    array_push($recent_subcategories, $single_subcategory); 
} 

그것은 거의 모두 CATEGORIES 모두 SUBCATEGORIES를 인쇄 한 작은 문제로 일하고있다. 어디에서 각각 하나씩 만 필요합니다.

ALCOHOL 
    - VODKA 
    - COLA 
NON-ALCOHOL 
    - VODKA 
    - COLA 

을 분명히 나는 ​​NON-ALCOHOL에 대한 ALCOHOL에 대한 VODKACOLA 할 것을 권장합니다

는 이제 다음과 같이 찾고 있습니다.

다른 사람이 나를 작동시키는 방법을 알려주시겠습니까? 감사.

답변

0

아마도 배열을 즉시 채워야합니다.

가정 콘텐츠는 다음과 같습니다 ..

$categories = array("alcohol", "non-alcohol"); 
    $subcategories = array(
        (object)array("category" => "alcohol", "name" => "vodka"), 
        (object)array("category" => "non-alcohol", "name" => "cola") 
        ); 

    foreach ($categories as $category) 
    { 
     $recent_categories[] = $category; 

     foreach ($subcategories as $subcategory => $subcat) 
     {    
      $recent_subcategories[$subcat->name][] = $subcat->name; 
     } 
    } 

이 발생합니다 :

array(2) { 
    [0]=> 
    string(7) "alcohol" 
    [1]=> 
    string(11) "non-alcohol" 
} 

array(2) { 
    ["alcohol"]=> 
    string(5) "vodka" 
    ["non-alcohol"]=> 
    string(4) "cola" 
} 
+0

해당 카테고리의 제품이 두 개 이상인 경우 동일한 카테고리의 마지막 제품 이름을 덮어 씁니다. –

+0

알 겠지만 정보는 하드 코드되지 않은 상태로 데이터베이스에 있어야합니다. – Unsparing

0
$categories = array("alcohol", "non-alcohol"); 
$subcategories = array(
       (object)array("category" => "alcohol", "name" => "vodka"), 
       (object)array("category" => "non-alcohol", "name" => "cola") 
       ); 
$recent_subcategories = array(); 
foreach ($categories as $category) 
{ 
    $recent_categories[] = $category; 

    foreach ($subcategories as $subcategory => $subcat) 
    {    
     $recent_subcategories[$subcat->name][] = $subcat->name; 
    } 
} 

그렇기 넣어 아웃

배열 ( '카테고리'=입니다 > 배열 (하위 범주) )

관련 문제