在php中确定一个空数组

Hello I am developing an admin backend for an android app for a restaurant. I need to list all food items the restaurant offers based on their categories. The trouble is there can be some categories which doesn't have any item listed under it, and if such a category is encountered the php back end is supposed to return just an empty list but the category name should be there.

My current code so far

try
    {
        $query = "SELECT category FROM category";       
        $result= $DBH->query($query);
        while($row = $result->fetch(PDO::FETCH_ASSOC))
        {
            $cat    = $row['category'];
            $query1 = "SELECT * FROM item WHERE catagory='$cat'";       
            $value  = $DBH->query($query1);
            $row1   = $value->fetch(PDO::FETCH_OBJ);
            $main   = array('data'=>array($row1));
            echo json_encode($main);
        }

        $result->closeCursor();         //Close database connection free resources
        $DBH = null;
    }
    catch(PDOException $e){
        print $e->getMessage ();
        die();
    }

Gives an output like this

{"data":[{"id":"2","name":"Rice","price":"120","description":"Plain Rice","image":"6990_abstract-photo-2.jpg","time":"12 mins","catagory":"Lunch","subcat":""}]}
{"data":[{"id":"4","name":"Dal","price":"5","description":"dadadad","image":"","time":"20 mins","catagory":"Dinner","subcat":""}]}
{"data":[false]}

My problem is the last output where it shows {"data":[false]} should be like this {"data":["catagory":"Soup"]} To do that I would need to find out when the $main variable is empty and then manually add the category to it.

Any ideas or work around to this situation?

you want this modification..........

if ($row1   = $value->fetch(PDO::FETCH_OBJ)){
  $main   = array('data'=>array($row1));
  echo json_encode($main);
}else{
  echo '{"data":["catagory":"' . $row['category'] . '"]}';
}

You problem stems from the fact that you have a 'soup' category but you don't have any items belonging to the soup category. You should add a condition for empty result and change the echoing array accordingly.

  if (empty($row1))
  {
   $main   = array('data'=>array('category'=>$cat));
  }
   else 
  {
    $main   = array('data'=>array($row1));
  }