我已經創建了一些函數來創建樹結構,在這種情況下,我使用以下代碼片段的一部分來添加子數組(如果至少存在一個子數組)。 <?php function addArrayIfNotEmpty($entire_array, $key, $childArray){ /* ### BEGIN: Possible as one line? ### */ if (count($childArray) > 0) { $entire_array[$key] = $childArray; } /* ### END: Possible as one line? ### */ return $entire_array;}$my_array = array();$first_array = array("orange", "banana");$second_array = array();$my_array = addArrayIfNotEmpty($my_array, "first", $first_array);$my_array = addArrayIfNotEmpty($my_array, "second", $second_array);var_dump($my_array);在我的真實代碼中,我只在帶有“BEGIN”和“END”的注釋之間使用 if 條件,但我想將此 if 條件更改為一行。我想像這樣的事情:$entire_array[$key] = count($childArray) > 0 ? $childArray : null;但在這種情況下,我會得到一個空的(不必要的)子數組。在這種情況下我該怎么辦?
1 回答

德瑪西亞99
TA貢獻1770條經驗 獲得超3個贊
您可以使用三元運算符作為語句并將賦值放在部分中true:
function addArrayIfNotEmpty($entire_array, $key, $childArray){
count($childArray) ? $entire_array[$key] = $childArray : null;
return $entire_array;
}
但是您現有的if陳述更具可讀性。
測試代碼:
$entire_array = array();
$entire_array = addArrayIfNotEmpty($entire_array, 'key1', array());
print_r($entire_array);
$entire_array = addArrayIfNotEmpty($entire_array, 'key2', array('hello'));
print_r($entire_array);
輸出:
Array
(
)
Array
(
[key2] => Array
(
[0] => hello
)
)
- 1 回答
- 0 關注
- 138 瀏覽
添加回答
舉報
0/150
提交
取消