php 有条件地将关联元素添加到数组

xjreopfe  于 2022-12-17  发布在  PHP
关注(0)|答案(7)|浏览(126)

如何在array()语句中有条件地将'b' => 'xyz'添加到下面的数组中?
$arr = array('a' => abc)
三元运算符不让我这么做。

kh212irz

kh212irz1#

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

2sbarzqh2#

您需要两个步骤:

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

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

agxfikkp3#

这是一个老问题,但是你可以用array_merge来完成:

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

tcbh2hod4#

$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);
e5nszbig

e5nszbig5#

不知道你在问什么;为什么不呢

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

2izufjch6#

PHP 8.1中,您可以使用数组解包来完成此操作:

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

参见https://php.watch/versions/8.1/spread-operator-string-array-keys

lnlaulya

lnlaulya7#

三元表示三个项。你必须有一个条件,一个真部分和一个假部分。它代替if condition then true part else false part。你不能省略第三部分。在5.3中有一个快捷方式,允许你省略真部分,如果条件也可以用作真部分,但它仍然有三个项。

相关问题