如何在array()语句中有条件地在下面的数组中添加'b' => 'xyz'
?
$arr = array('a' => abc)
三元运算符不允许我这样做
答案 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中有一个快捷方式,如果条件也可以作为真正的部分使用,它允许你省略真正的部分,但它仍然有三个术语。