数组中的 PHP if 语句

如果设置了值,我正在尝试编写以下数组。如何在数组中执行此操作?我知道我可以使用三元运算符,但我不确定如何。


            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',

                        ),

                    ),


                           }

            ),


郎朗坤
浏览 173回答 2
2回答

猛跑小猪

您不能将数组的定义与条件语句相交。相反,您需要做的是首先定义您的数组,然后执行一个 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。

繁星coding

有 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 建议的变体可能比这三个更清楚。
打开App,查看更多内容
随时随地看视频慕课网APP