PHP if-then-else在数组中


PHP if then else inside an array

很抱歉重复(毫无疑问)这个问题,但其他答案让我有点困惑。

所以我有一个这样的数组:

$testflag = '';
    $test = array(
    'auxiliaryFields' => array(
        array(
            'key'   => 'extra1',
            'label' => 'TEST',
            'value' => 'TEST',
            'textAlignment' => 'PKTextAlignmentLeft'                
        )
        if ($testflag != ''){
        ,
        array(
            'key'   => 'extra2',
            'label' => 'TEST2',
            'value' => 'TEST2',
            'textAlignment' => 'PKTextAlignmentLeft'                
        )
    }
    ));
    var_dump($test);

现在,我已经读到不能在数组中使用代码,所以我的问题是如何做到这一点?在这个例子中,它只有2个数组(extra1&extra2),但在我的实际代码中总共有4个数组。条件基本上是如果session:form:element:not_null则包含extra2-3-4,依此类推,如果为null,则不执行任何操作。

有人能帮忙吗?

这类似于mzedeler的答案,但它能在中工作

$testflag = 'test';
$test = array(
'auxiliaryFields' => array(
    array(
        'key'   => 'extra1',
        'label' => 'TEST',
        'value' => 'TEST',
        'textAlignment' => 'PKTextAlignmentLeft'                
    )
));
var_dump($test);
if ($testflag != ''){
    $test['auxiliaryFields'][]=array(
        'key'   => 'extra2',
        'label' => 'TEST2',
        'value' => 'TEST2',
        'textAlignment' => 'PKTextAlignmentLeft'                
    );
}
var_dump($test);

我已将$test['axiliaryFields'][0][]更改为$test['Axiliaryfields'][],并修复了一个sintax错误(丢失;)

不能像在代码片段中那样在数组中使用条件。在声明数组之后,可以向数组添加额外的值。

例如

if (something) {
   $test[] = $someArray;  // $test[] is next element, so 
                          // add $someArray as next element of $test 
}

您的代码片段变成:

$testflag=";

// set up array here
$test = array(
'auxiliaryFields' => array(
    array(
        'key'   => 'extra1',
        'label' => 'TEST',
        'value' => 'TEST',
        'textAlignment' => 'PKTextAlignmentLeft'                
    )
);
// conditionally, add an extra element.
if ($testflag != ''){
    $test[] = 
        array(
        'key'   => 'extra2',
        'label' => 'TEST2',
        'value' => 'TEST2',
        'textAlignment' => 'PKTextAlignmentLeft'                
    );
}

var_dump($test);

类似的内容。

    $testflag = '';
    $test = array(
    'auxiliaryFields' => array(
        array(
            'key'   => 'extra1',
            'label' => 'TEST',
            'value' => 'TEST',
            'textAlignment' => 'PKTextAlignmentLeft'                
        )
    ));
    if ($testflag != '') {
        $test['auxillaryFields'][] = 
        array(
            'key'   => 'extra2',
            'label' => 'TEST2',
            'value' => 'TEST2',
            'textAlignment' => 'PKTextAlignmentLeft'                
        )
    }