PHP,如果然后在数组内

时间:2013-06-23 20:59:35

标签: php arrays if-statement

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

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

$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,则什么都不做。

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

这类似于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 ['auxiliaryFields'] []更改了$ test ['auxiliaryFields'] [0] []并修正了一个sintax错误(缺少;)

答案 1 :(得分:0)

像这样。

    $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'                
        )
    }

答案 2 :(得分:0)

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

例如

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