很抱歉重复(毫无疑问)这个问题,但其他答案让我有点困惑。
所以我有一个这样的数组:
$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'
)
}