我已经创建了一些函数来创建树结构,在这种情况下,我使用以下代码片段的一部分来添加子数组(如果至少存在一个子数组)。 <?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 关注
- 114 浏览
添加回答
举报
0/150
提交
取消