很抱歉重复(毫无疑问)的问题,但其他答案让我有些困惑。
所以我有一个像这样的数组:
$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,则什么都不做。
有人可以帮忙吗?
答案 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);