在 php pdo 中缩短删除数组元素的代码

Shorten code for removing array element with conditional in php pdo

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

$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);
$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);

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

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

虽然行数相同,但效率更高,因为它只处理有内容的活动,而不是添加它,然后在没有内容的情况下删除它。