Php 如何在数组中使用if/else
基本上,我有一段相对复杂的代码,其中有几个相互嵌套的数组。我相信我想做的事情严格来说是不可能的:Php 如何在数组中使用if/else,php,arrays,if-statement,Php,Arrays,If Statement,基本上,我有一段相对复杂的代码,其中有几个相互嵌套的数组。我相信我想做的事情严格来说是不可能的: $selector = true, $main_array = array( 'general' = array( 'another_array' = array( 'option1' = array( 'title' = 'Some Title', 'type' = 'select', if ($selector == true) {
$selector = true,
$main_array = array(
'general' = array(
'another_array' = array(
'option1' = array(
'title' = 'Some Title',
'type' = 'select',
if ($selector == true) {
'option2' = array(
'title' = 'Some title',
'type' = 'select',
} else
...
我知道上述是不可能的。我知道我可以使用三元运算符,但当我尝试时,它不起作用。我知道有更好的方法来解决这个问题,但据我所知,所有这些方法都需要我改变整个结构(因为有许多数组嵌套在彼此之间),这是我不想做的,所以我的问题是,有没有一种方法可以让这个条件工作,而不需要我改变整个结构
非常感谢你说得对:你想做的事不可能按你想的方式去做。你必须重新构造你的代码。您可以单独将每个元素推入数组,必要时使用
if
语句确定推入的内容。使用三元运算符。对于三元运算符,这是:
if($selector == true){
$foo = 'something';
} else {
$foo = 'something else';
}
可以变成这样:
$foo = ($selector == true) ? 'something' : 'something else';
您的示例代码如下所示:
$selector = true;
$main_array = array(
'general' => array(
'another_array' => array(
'option1' => array(
'title' => 'Some Title',
'type' => 'select',
'option2' => ($selector == true) ? array('title' = 'Some title','type' = 'select') : array('title' => 'Some other title', 'type' => 'Some other type')
...
我假设您实际上并没有尝试将数组分配给字符串文本,所以明智地添加一些'>' 是的,如果我理解你在寻找什么,它可以通过三元运算完成,如下所示:
$main_array = array(
'general' => array(
'another_array' => array(
'option1' => array(
'title' => 'Some Title',
'type' => 'select',
'option2' => (($selector == true) ?
array(
'title' => 'Some title',
'type' => 'select',
) : 'It was false'
)))));
好吧,如果你下定决心使用if/else而不是三元组,你可以提前计算出一些结果 if ($selector == true) { $preset2 = array( 'title' = 'Some title', 'type' = 'select' ); } else { $preset2 = array( ... ); } $main_array = array( 'general' = array( 'another_array' = array( 'option1' = array( 'title' = 'Some Title', 'type' = 'select' ), 'option2' = $preset2, 如果($selector==true){ $preset2=数组( “标题”=“某些标题”, '类型'='选择' ); } 其他的 { $preset2=数组(…); } $main_数组=数组( “常规”=数组( “另一个数组”=数组( “option1”=数组( “标题”=“某些标题”, '类型'='选择'),
'option2'=$preset2,太好了!我以前试过使用三元运算,但我肯定是ben误用了,因为我一直都在出错。现在它工作得很好。谢谢!