【问题标题】:Shorten code for removing array element with conditional in php pdo在 php pdo 中使用条件删除数组元素的缩短代码
【发布时间】:2015-04-13 06:25:13
【问题描述】:

有没有办法缩短这段代码?只是看起来很笨重。我用三元运算符尝试了几种速记想法,但没有任何效果。所以这就是我想出的。任何想法将不胜感激。

$query = $db->prepare($sql);
$array = array(':page_parent' => $parent_id, ':page_active' => $active);

if(is_null($active)):
    unset($array[':page_active']);
endif;

$query->execute($array);

【问题讨论】:

  • 您可以使用 $array= array_filter($array); 从数组中删除空值
  • @谁对我的问题投了反对票:为什么有人会对我的问题投反对票? Stackoverflow 上的另一个帖子没有回答。这个网站的全部意义在于获得问题的答案。我没有要求有人为我做我的工作。如果我知道答案,我就不会问了。如果你不想帮忙,那就不要。而且我敢肯定,有很多你不知道的事情在别人看来是微不足道的或简单的。噗。真是个混蛋。

标签: php arrays pdo unset


【解决方案1】:

为什么在添加到数组之前不能检查?

$query = $db->prepare($sql);
$array = array(':page_parent' => $parent_id);
if( ! is_null($active))
{
    $array[':page_active'] = $active;
}
$query->execute($array);

虽然它的行数相同,但它更有效,因为它只处理有东西的活动,而不是添加它,然后如果没有东西就删除它。

【讨论】:

    【解决方案2】:
    $query = $db->prepare($sql);
    $array = array(':page_parent' => $parent_id, ':page_active' => $active);
    //array_filter will remove null and false array element 
    $array = array_filter($array);
    $query->execute($array);
    

    【讨论】:

    • 在我开始大量使用 PDO 之前,我从未在 php 中大量使用过数组。所以 array_filter 函数不是我想到的。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-21
    • 1970-01-01
    • 2018-08-22
    • 2017-12-12
    • 1970-01-01
    • 1970-01-01
    • 2013-01-02
    相关资源
    最近更新 更多