在数组中使用If-else

Mic*_*ael 7 php arrays if-statement

嗨,大家好,我不知道这是否可能,或者是否有其他办法,但任何帮助将不胜感激.我要做的是单独关闭数组.所以我有这个......

<?php
$arrLayout = array(
    "section1" => array(

        "wLibrary" => array(
            "title" => "XBMC Library",
            "display" => ""
        ),

        "wControl" => array(
            "title" => "Control",
            "display" => ""
        )
        )
            )
?>
Run Code Online (Sandbox Code Playgroud)

我想要的是这个

<?php

$LibraryStatus='true'

$arrLayout = array(
    "section1" => array(

                  if $LibraryStatus='true' (

        "wLibrary" => array(
            "title" => "XBMC Library",
            "display" => ""
        ),
                  else blank.      

              if $ControlStatus='true' (

    "wControl" => array(
            "title" => "Control",
            "display" => ""
        )
    )
            )
?>
Run Code Online (Sandbox Code Playgroud)

如果它是假的那么它显然也是空白的.是否有可能在一个控制另一个数组的数组中有一个if?如果是这样,它将如何运作?这只是数组的一部分有更多的选项和部分我只是简单地将它们拿出来,因为一旦我理解了如何做到这一点就很容易扩展.

谢谢

Kok*_*kos 11

是的,这可以使用某种速记:

<?php

$LibraryStatus = $ControlStatus = true;

$arrLayout = array(
             "section1" => array(
             ($LibraryStatus ? array("wLibrary" => array("title"   => "XMBC Library",
                                                         "display" => "")) : false),
             ($ControlStatus ? array("wControl" => array("title"   => "Control",
                                                         "display" => "")) : false)));

print_r($arrLayout);

?>
Run Code Online (Sandbox Code Playgroud)

它的工作原理如下:

if($a == $b){ echo 'a'; }else{ echo 'b'; }
Run Code Online (Sandbox Code Playgroud)

等于

echo $a == $b ? 'a' : 'b';
Run Code Online (Sandbox Code Playgroud)

如果使用这种速记,它将始终返回输出,因此您可以将它放在括号之间并将其放在数组之间.

http://codepad.org/cxp0M0oL

但对于这种情况,还有其他解决方案.


Ost*_*tin 6

在数组内部,您可以使用三元运算符:

$a = array(
    'b' => $expression == true ? 'myWord' : '';
);
Run Code Online (Sandbox Code Playgroud)

但在您的示例中,更好的方法是将if语句移到数组之外.