You can use the conditional operator cond ? true-expr : false-expr
:
$someConfig = array(
'k1' => 'v1',
'k2' => $cond ? 'v2a' : 'v2b'
);
The conditional expression $cond ? 'v2a' : 'v2b'
will yield 'v2a'
if $cond
evaluates to true and 'v2b'
otherwise. But this works only with the value of a key.
If you only want to add a key based on a condition, you need to use a separate if
:
$someConfig = array('k1' => 'v1');
if ($cond) {
$someConfig['k2'] = 'v2';
}
Edit You can add keys conditionally without a variable using the array union operator or array_merge
:
array('k1' => 'v1') + ($cond ? array('k2' => 'v2') : array())
array_merge(array('k1' => 'v1'), $cond ? array('k2' => 'v2') : array())
Now you need to decide what’s more readable or better to maintain.