我如何删除空数组()php

时间:2015-02-18 05:41:56

标签: php arrays codeigniter

我正在使用get_where查询在CI中检索帖子,我的where变量是chaking for category是这样的。

我在foreach循环中将类别数组传递给get_where查询,但如果类别下没有帖子,查询会给我一个空白数组作为回报。

我的类别数组:

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中

;发布功能

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 )

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

在那里添加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

否则,在您的特定情况下empty()构造将始终返回true如果至少有一个元素,即使使用"空"值。