为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 短格式(一行)添加带键的子数组,如果子数组不为空

PHP 短格式(一行)添加带键的子数组,如果子数组不为空

PHP
斯蒂芬大帝 2023-03-04 14:29:03
我已经创建了一些函数来创建树结构,在这种情况下,我使用以下代码片段的一部分来添加子数组(如果至少存在一个子数组)。    <?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

        )


)

3v4l.org 上的演示


查看完整回答
反对 回复 2023-03-04
  • 1 回答
  • 0 关注
  • 87 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信