Php 有条件地将键/值对添加到数据库中的数组中

Php 有条件地将键/值对添加到数据库中的数组中,php,arrays,wordpress,if-statement,woocommerce,Php,Arrays,Wordpress,If Statement,Woocommerce,如果有搜索项,我只想有条件地向数组中添加's'=>$search\u term $args = array( // if there is a $search_term then insert: 's' => $search_term ); 我知道我可以写很多参数,然后在数组外使用if语句,但这不是我想要做的 您需要在数组外部执行此操作,就像在数组中声明键“s”一样(如果没有搜索项,则使用空值) 尝试以下方法,在定义的数组中有条件地插入新的键/值对: // Initia

如果有搜索项,我只想有条件地向数组中添加
's'=>$search\u term

$args = array(
    // if there is a $search_term then insert: 
   's' => $search_term 
);
我知道我可以写很多参数,然后在数组外使用if语句,但这不是我想要做的

您需要在数组外部执行此操作,就像在数组中声明键
“s”
一样(如果没有搜索项,则使用空值)

尝试以下方法,在定义的数组中有条件地插入新的键/值对:

// Initialize (or define) the array variable
$args = array();

// IF + Condition
if( isset($search_term) && ! empty($search_term) ){
    // Inserting in $args array a new key / value pair
    $args['s'] = $search_term;
}
或者如前所述,使用始终定义的
's'
键,如下所示:

$args = array(
    's' => isset($search_term) && ! empty($search_term) ? $search_term : '';
);

您的建议无法实现。PHP函数用于声明键和值。因此,在编写时:

$args = array( 
   's' => $search_term 
);
它将创建密钥。您可以执行以下操作

$args = array( 
       's' => isset($search_term) ? $search_term : null
    );
并使用isset($args['s'])进行查询,以执行您所描述的操作,但在我看来,依赖这种行为是不好的。如果数组值为null,则返回false


最好的方法是按照LoicTheAztec的建议,但您在这里有自己的解决方法。

谢谢。如果(isset($search\u term)&&&!empty($search\u term)){//在$args数组中插入一个新的键/值对$args['s']=$search\u term;},我会使用此解决方案1.谢谢你help@AmjadKhalil不客气。我只是想说,我已经更新了我的第二个代码段,因为有一个小错误。谢谢。