我如何删除空白数组()php

How do i remove blank array() php

我正在使用 get_where 查询在 CI 中检索 post,我的 where 变量是这个类别。

我在 foreach 循环中将类别数组传递给 get_where 查询,但是如果类别下没有 post,查询在 return 中给我空白数组。

我的类别数组:

Array ( 
    [0] => Array ( 
           [0] => 341 
           [1] => Email Templates 
           [2] => email-templates 
           [3] => marketing 
           [4] => Email Templates 
           [5] => 340 ) 
    [1] => Array ( 
           [0] => 342 
           [1] => Newsletters 
           [2] => newsletters 
           [3] => marketing 
           [4] => Newsletters 
           [5] => 341 ) 
    [2] => Array ( 
           [0] => 343 
           [1] => e-Flyers 
           [2] => e-flyers 
           [3] => marketing 
           [4] => e-Flyers 
           [5] => 341 ) 
    [3] => Array ( 
           [0] => 344 
           [1] => Catalogs 
           [2] => catalogs 
           [3] => marketing 
           [4] => Catalogs 
           [5] => 341 ) 
    [4] => Array ( 
           [0] => 345 
           [1] => Email Stationery 
           [2] => email-stationery 
           [3] => marketing 
           [4] => Email Stationery 
           [5] => 341 ) )

上面的数组是我的 $subcatid;

我的控制器:

public function index()
{
    $data['post'] = $this->post->get_category_post($subcatid);
    print_r($data['post']);
    $this->load->view('frontend/post/category_post', $data);
}

在get_category_post; post 函数

function get_category_post($up_cat)
    {
        foreach($up_cat as $cat){
            $query = $this->db->get_where('accmark_posts', array('up_sub_cat' => $cat[0]));
            $result = $query->result();
            print_r($result);
        }
    }

这个函数给我以下数组

Array ( ) 
Array ( )
Array ( ) 
Array ( ) 
Array ( ) 
Array ( ) 
Array ( )
Array ( ) 
Array ( ) 
Array ( ) 
Array ( ) 
Array ( ) 
Array ( ) 
Array ( 
   [0] => stdClass Object ( 
              [up_id] => 1 
              [user_id] => mediaexhibitor 
              [up_time] => 2015-02-15 16:24:11 
              [up_cat] => 340 
              [up_name] => RealEsta - Real Estate Email Marketing      
              [up_name_slug] => realesta-real-estate-email-marketing )

我想从结果中删除这个空白 array()。

使用array_filter($result)。如果您不提供回调函数作为第二个参数,该函数将过滤掉所有等于 false 的数组项,例如空数组。

在其中添加一个 if 条件。

例如:

$errors = array_filter($_POST);

if (empty($errors)) {

 echo "array is empty.";
}
else
{
 echo "It is not empty.";
}

数组中有两个元素,这绝对不意味着数组为空。作为快速解决方法,您可以执行以下操作:

$errors = array_filter($errors);

if (!empty($errors)) {
}

array_filter() 函数的默认行为将从数组中删除等于 null0''false[=20= 的所有值]

否则,在您的特定情况下,如果至少有一个元素具有 "empty" 值,empty() 构造将始终 return true