有条件地在数组中添加元素

时间:2011-06-25 13:07:52

标签: php arrays conditional conditional-operator

如何在array()语句中有条件地在下面的数组中添加'b' => 'xyz'

$arr = array('a' => abc)

三元运算符不允许我这样做

6 个答案:

答案 0 :(得分:7)

$a = array('a' => 'abc') + ($condition ? array('b' => 'xyz') : array());

答案 1 :(得分:4)

您需要两个步骤:

$arr = array('a' => 'abc');

if(condition) {
    $arr['b'] = 'xyz';
}

答案 2 :(得分:3)

这是一个老问题,但您可以使用array_merge完成此操作:

array_merge(['foo' => 'bar'], $condition ? ['baz' => 'boo' ] : []);

答案 3 :(得分:2)

$arr = array('a' => 'abc');
if ($condition_required_for_b_to_be_put_in_the_array) {
   $arr['b'] = 'xyz';
}

如果确实想要使用三元运算符:

$arr = array('a' => 'abc', $condition ? 'b' : '' => $condition ? 'xyz' : '');
$arr = array_filter($arr);

答案 4 :(得分:1)

不确定你在问什么;为什么不

if (condition) { 
   $arr['b'] = 'xyz';
}

答案 5 :(得分:0)

三元意味着三个任期。你必须有一个条件,一个真实的部分和一个错误的部分。它代替if条件然后真正的其他部分错误部分。你不能忽略第三部分。在5.3中有一个快捷方式,如果条件也可以作为真正的部分使用,它允许你省略真正的部分,但它仍然有三个术语。