将If()放在数组()中

时间:2017-04-20 12:14:04

标签: php

是否可以将if语句放在像这样的数组

array(1 => 1, 2 => 2 if(!empty(3)){echo ", 3 => 3";});

而不是

if(!empty(3)){
    array (1 => 1, 2 => 2, 3 => 3);
}
else {
    array (1 =>1, 2 => 2);
}

3 个答案:

答案 0 :(得分:3)

您可以在创建数组后添加值

$array = [1 => 1, 2 => 2];
if (...) {
    $array[3] = 3;
}

如果你不需要密钥,你也可以写

$array[] = 3;

答案 1 :(得分:1)

$array = [ 1 => 1, 2 => 2  ];
    if ( !empty(3) ) { 
        $array[3] = 3;
    }

答案 2 :(得分:0)

您可以使用条件运算符作为值,如下所示

$array = array(
    '1' => '1',
    '2' => '2',
    '3' => $cond ? '3' : ''
);

如果你需要在密钥中添加条件,你可以在下面进行

if ($cond) {
    $array[3] = 3;
}

您还可以使用array union operatorarray_merge

array('1' => '1') + ($cond ? array('3' => '3') : array())
array_merge(array('1' => '1'), $cond ? array('3' => '3') : array())

现在你必须决定什么对你有好处。