2016-04-16 7 views
0

Ich habe zwei Tabellenwie alle abonnierten Kategorie abrufen b wahr

gezeichnet

enter image description here

categorys

enter image description here

public function get_categories($user_id) 
{ 
    $categories = $this->ApiModel->categories(); 
    $subscribed = $this->ApiModel->get_categories($user_id); 
    $subscribed = explode(',', $subscribed->categorys); 
    foreach($categories as $category) 
    { 
     foreach($subscribed as $sub) 
     { 
      if($category->category == $sub) 
      { 
       $status = 'true'; 
      } 
      else 
      { 
       $status = 'false'; 
      } 
     } 
     $data = array('id' => $user_id, 'name' => $category->category, 'is_subscribed' => $status); 
     echo json_encode($data); 
    } 
} 

das Ergebnis i bin immer ist

{"id":"3","name":"News","is_subscribed":"false"}{"id":"3","name":"Movies","is_subscribed":"true"}{"id":"3","name":"Sports","is_subscribed":"false"}{"id":"3","name":"Music","is_subscribed":"false"} 

wie alle abonnierten Kategorie wahr b

Antwort

1

Alles, was Sie tun müssen, erhalten, ist ein break; hinzufügen, wenn Sie ein Spiel in der inneren Schleife finden. Es beschleunigt auch die Verarbeitung.

public function get_categories($user_id) 
{ 
    $categories = $this->ApiModel->categories(); 
    $subscribed = $this->ApiModel->get_categories($user_id); 
    $subscribed = explode(',', $subscribed->categorys); 

    $data = array(); 

    foreach($categories as $category){ 
     foreach($subscribed as $sub){ 
      if($category->category == $sub){ 
       $status = 'true'; 
       break;    //<-- new line 
      } else { 
       $status = 'false'; 
      } 
     } 
     //$data = array('id' => $user_id, 'name' => $category->category, 'is_subscribed' => $status); 

     $data[] = array('id' => $user_id, 'name' => $category->category, 'is_subscribed' => $status); 

     //echo json_encode($data); 
    } 
    echo json_encode($data); 
} 
+0

danke, es hat für mich funktioniert. – Arvind

+0

Hier bekomme ich eine Antwort wie diese {"id": "3", "name": "Nachrichten", "is_subscribed": "false"} {"id": "3", "name": "Filme", ​​" is_subscribed ":" true "} aber ich möchte die Antwort wie folgt [{" id ":" 3 "," name ":" News "," is_subscribed ":" false "}, {" id ":" 3 ", "name": "Filme", ​​"is_subscribed": "true"}] – Arvind

+0

Siehe geänderten Code – RiggsFolly

Verwandte Themen