2017-05-03 4 views
0

Ich möchte überprüfen, ob notifications sind> 0 dann gibt es sonst noch es gibt keine Benachrichtigungen verfügbar, aber aber, wenn ich den Status auf 1 ändern meine Zeilen geht zu meinem zweiten wenn - sonst gesehen, aber ich möchte, um zu überprüfen, wie viele Benachrichtigungen gesehen oder ungelesen, aber wenn ich Status Zahl wie allewas passiert mit meinem Code

ändern
public function websocket(){ 
     $data = $this->session->userdata('log'); 
     $user_id = $data['id']; 
     $timestamp = 1493618633; 
     // $entryData = array(
    //  'category' => $_POST['category'], 
    //  'title' => $_POST['title'], 
    //  'article' => $_POST['article'], 
    //  'when'  => time() 
    //  ); 
     $array = $this->notification->getNotifications($timestamp, $user_id); 
     if ($array > 0) { 
      if (empty(array_filter(array_column($array, 'status')))) { 
       echo 'unread'; 
      }else{ 
       echo 'seen'; 
      } 
     }else{ 
      $this->json(array('msg' => 'there are no notifications available')); 
     } 
     $context = new ZMQContext(); 
     $socket = $context->getSocket(ZMQ::SOCKET_PUSH, 'my pusher'); 
     $socket->connect("tcp://localhost:5555"); 
     $socket->send(json_encode('hola')); 
    } 
+1

Um mit zu beginnen, muss '($ array> 0)' 'sein (' count ($ array)> 0) '? – Scuzzy

+0

Versuchen Sie, die Array-Größe zu überprüfen, wenn ($ array.size()> 0) –

+0

geht sowieso gesehen –

Antwort

0

Basierend auf Ihren Code, sind Sie nur überprüfen, ob $array existiert (was es tut, weil es in der initialisiert wird Linie direkt darüber). Wenn count($array) > 0 oder $array.size() > 0 immer noch das unerwünschte Ergebnis zurückgibt, versuchen Sie, direkt nach der Initialisierung der Variablen eine schnelle und schmutzige print_r($array) zu werfen, um sicherzustellen, dass Ihr Benachrichtigungssystem kein leeres oder fehlerhaftes Array zurückgibt.