1

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

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

$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 等等,如果它是空的,什么也不做。

有人可以帮忙吗?

4

3 回答 3

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 错误(缺少;)

于 2013-06-23T21:13:00.990 回答
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'                
        )
    }
于 2013-06-23T21:03:01.300 回答
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);
于 2013-06-23T21:06:55.417 回答