2 回答

TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊
您不能將數(shù)組的定義與條件語(yǔ)句相交。相反,您需要做的是首先定義您的數(shù)組,然后執(zhí)行一個(gè) if 語(yǔ)句,該語(yǔ)句將添加到數(shù)組中。尚不清楚要在數(shù)組的哪個(gè)級(jí)別添加條件內(nèi)容,因此我將在一個(gè)簡(jiǎn)化的示例中對(duì)其進(jìn)行展示:
$value = 1;
$myArray = array(
'name' => 'Joe',
'kids' => array(
'name' => 'Mary',
),
);
if ($value === 1) {
$myArray['kids']['hobbies'] = 'kite flying';
}
在此之后,變量$myArray將具有以下內(nèi)容:
array(
'name' => 'Joe',
'kids' => array(
'name' => 'Mary',
'hobbies' => 'kite flying',
),
)
您需要將條件數(shù)據(jù)放在哪里取決于數(shù)組的完整結(jié)構(gòu),但想法是您可以通過索引訪問所需的部分。
編輯:如果您可以在數(shù)組末尾添加所需的子數(shù)組,您可以使用array_push。

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊
有 3 種變體可以做到這一點(diǎn):
// Variant 1
// Anonymous function, variables from the parent scope
$Value = 1;
$arr = array(
'name' => 'extraFields',
'attributes' => array(
'name' => 'portal',
),
'ifArray' => function() use ($Value) {
if ($Value == 1)
return array(
'name' => 'portal',
'value'=> '',
'attributes' => array(
'id' => '1',
'value'=> 'testportal',
),
);
}
);
print_r($arr['ifArray']());
// Variant 2
// Anonymous function, variable assignment
$arr = array(
'name' => 'extraFields',
'attributes' => array(
'name' => 'portal',
),
'ifArray' => function($Value) {
if ($Value == 1)
return array(
'name' => 'portal',
'value'=> '',
'attributes' => array(
'id' => '1',
'value'=> 'testportal',
),
);
}
);
$Value = 1;
print_r($arr['ifArray']($Value));
// Variant 3
// Ternar operator
$Value = 1;
$arr = array(
'name' => 'extraFields',
'attributes' => array(
'name' => 'portal',
),
'ifArray' => $Value != 1 ? null : array(
'name' => 'portal',
'value'=> '',
'attributes' => array(
'id' => '1',
'value'=> 'testportal',
)
)
);
print_r($arr['ifArray']);
但是,El_Vanja 建議的變體可能比這三個(gè)更清楚。
- 2 回答
- 0 關(guān)注
- 126 瀏覽
添加回答
舉報(bào)