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

数组中的 PHP if 语句

数组中的 PHP if 语句

PHP
郎朗坤 2022-10-14 10:09:06
如果设置了值,我正在尝试编写以下数组。如何在数组中执行此操作?我知道我可以使用三元运算符,但我不确定如何。            array(                'name' => 'extraFields',                'attributes' => array(                    'name' => 'portal',                ),             if($Value === 1){   //Need to write the below when value is true                    array(                        'name' => 'portal',                        'value'=> '',                        'attributes' => array(                            'id' => '1',                            'value'=> 'testportal',                        ),                    ),                           }            ),
查看完整描述

2 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

您不能将数组的定义与条件语句相交。相反,您需要做的是首先定义您的数组,然后执行一个 if 语句,该语句将添加到数组中。尚不清楚要在数组的哪个级别添加条件内容,因此我将在一个简化的示例中对其进行展示:


$value = 1;

$myArray = array(

    'name' => 'Joe',

    'kids' => array(

        'name' => 'Mary',

    ),

);

if ($value === 1) {

    $myArray['kids']['hobbies'] = 'kite flying';

}

在此之后,变量$myArray将具有以下内容:


array(

    'name' => 'Joe',

    'kids' => array(

        'name' => 'Mary',

        'hobbies' => 'kite flying',

    ),

)

您需要将条件数据放在哪里取决于数组的完整结构,但想法是您可以通过索引访问所需的部分。


编辑:如果您可以在数组末尾添加所需的子数组,您可以使用array_push。


查看完整回答
反对 回复 2022-10-14
?
繁星coding

TA贡献1797条经验 获得超4个赞

有 3 种变体可以做到这一点:


// 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 建议的变体可能比这三个更清楚。


查看完整回答
反对 回复 2022-10-14
  • 2 回答
  • 0 关注
  • 171 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号