Удалить пустые массивы из массива

У меня есть ajaxlistAction:

public function ajaxlistAction()
{
$em = $this->getDoctrine()->getEntityManager();
$qb = $em->createQueryBuilder();
$qb->select('wfsd','b')
->from('TFTDataBundle:WpFormSubmittedData','wfsd')
->leftjoin('wfsd.customFieldData','b')
->leftjoin('b.custom_field','CustomField')
->getQuery()->getResult();


if (!empty($_GET['sSearch'])) {
$qb->andWhere('b.data like :search')->setParameter('search', "%{$_GET['sSearch']}%");
}

$qc = clone ($qb);
$qc->select('COUNT( DISTINCT b.id)');
$count = $qc->getQuery()->getSingleScalarResult();

$columns = array('CustomField.fieldLabel');

if( isset($_GET['iSortCol_0'] )){
$dir = empty($_GET['sSortDir_0'])?'asc':$_GET['sSortDir_0'];
$qb->orderBy($columns[$_GET['iSortCol_0']], $dir );
}


if (empty($_GET['iDisplayLength'])) {
$_GET['iDisplayLength'] = 10;
}
if (empty($_GET['sEcho'])) {
$_GET['sEcho'] = 1;
}
if (!empty($_GET['iDisplayStart'])) {
$qb->setFirstResult($_GET['iDisplayStart']);
}

$qb->setMaxResults($_GET['iDisplayLength']);

$data = array();

foreach($qb->getQuery()->getResult() as $row ) {

$rows = array();

foreach ($row->getCustomFieldData() as $customFieldData) {
$rows[] = $customFieldData->getData();

}

$data[] = $rows;
}

//$data = $qb->getQuery()->getArrayResult();
return new JsonResponse(array("sEcho"=>$_GET['sEcho'],"iTotalRecords"=>$count,"iTotalDisplayRecords"=>$count,'aaData'=>$data));
}

Ответ на это действие так

{"sEcho":"1","iTotalRecords":"44","iTotalDisplayRecords":"44","aaData":[[],[],[],[],[],[],[],["Name","[email protected]","this is subject","this is message"],["sdsd","[email protected]","asa","sdsd"],["sdsd","[email protected]","asa","sdsd"]]}

И я хочу удалить пустые массивы и хочу вывод, как это

{"sEcho":"1","iTotalRecords":"44","iTotalDisplayRecords":"44","aaData":[["Name","[email protected]","this is subject","this is message"],["sdsd","[email protected]","asa","sdsd"],["sdsd","[email protected]","asa","sdsd"]]}

Как я могу удалить пустые массивы выше?

Пожалуйста, помогите мне удалить эти подмассивы из результирующего массива

Спасибо

-1

Решение

Вы можете изменить эту строку:

 $data[] = $rows;

К этому:

if( count($rows) > 0)
$data[] = $rows;

Это проверит, если $rows не пустой массив, затем вставьте его в $data массив

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]