我正在使用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 )
我想从结果中删除这个空白数组()。
答案 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()
函数的默认行为将从数组中删除所有等于null
,0
,''
或false
的值
否则,在您的特定情况下empty()
构造将始终返回true
如果至少有一个元素,即使使用"空"值。