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

时间:2018-10-06 09:24:24

标签: php arrays wordpress if-statement woocommerce

如果有搜索词,我只想有条件地将's' => $search_term添加到数组中。

$args = array(
    // if there is a $search_term then insert: 
   's' => $search_term 
);

我知道我可以写很多参数,然后在数组外使用if语句,但这不是我们想要的方式。

2 个答案:

答案 0 :(得分:1)

  

您需要在数组外进行操作,就好像在数组中无论如何都不会声明键'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 : '';
);

答案 1 :(得分:0)

您提出的建议无法实现。 PHP array函数用于声明键和值。所以,当你写:

$args = array( 
   's' => $search_term 
);

它将创建密钥“ s”。您可以执行以下操作

$args = array( 
       's' => isset($search_term) ? $search_term : null
    );

并使用isset($ args ['s'])查询以执行您描述的操作,但是IMO依靠该行为是不好的。 isset返回false哪些数组值为null。

最好的方法是LoicTheAztec推荐的方法,但是您可以在此处找到解决方法。