PHP:内部有if语句的数组


PHP: array with an if statement inside

大家好,

这是我的代码:

if ($value==0)
{
        $array = array(
        "NAMES"            => array("John", "Sara", "Mark"), 
        "LASTNAMES"      => array ("Smith", "Lockwood", "Grant")
        );
}
else 
{
        $array = array(
        "NAMES"            => array("John", "Sara", "Mark"), 
        "LASTNAMES"      => array ("Smith", "Lockwood", "Grant"),
        "ITEMPURCHASED"      => array ("DVD", "Book", "Comic")
         );   
}

正如您所看到的,仅仅因为ITEMPURCHASED元素,我就获得了整个数组代码。

有没有办法不重复整个数组代码?if可以在只添加ITEMPURCHASED元素的数组中使用吗?如果是,如何?

感谢

$array = array(
    "NAMES" => array("John", "Sara", "Mark"), 
    "LASTNAMES" => array ("Smith", "Lockwood", "Grant")
);
if ($value != 0){
    $array['ITEMPURCHASED'] = array ("DVD", "Book", "Comic");
}

或者,如果$value不等于0,可以使用三元运算符将值设置为NULL。

$array = array(
    "NAMES" => array("John", "Sara", "Mark"), 
    "LASTNAMES" => array ("Smith", "Lockwood", "Grant"),
    "ITEMPURCHASED" => ($value != 0) ? array ("DVD", "Book", "Comic") : null
);

像这样尝试

$array = array(
              "NAMES"        => array("John", "Sara", "Mark"), 
              "LASTNAMES"    => array ("Smith", "Lockwood", "Grant")
         );
if($val != 0) {
    $array['ITEMPURCHASED'] = => array ("DVD", "Book", "Comic");
}

只需将公共数组从循环中取出并检查条件,如果为true,则将剩余的基于ITEMPURCHASED的数组附加到主数组中。

    $array = array(
    "NAMES"            => array("John", "Sara", "Mark"), 
    "LASTNAMES"      => array ("Smith", "Lockwood", "Grant")
    );
    if($value != 0) {
        $array["ITEMPURCHASED"] = array ("DVD", "Book", "Comic");
    }

是的,您可以通过以下代码来完成:

$array = $array = array(
        "NAMES"            => array("John", "Sara", "Mark"), 
        "LASTNAMES"      => array ("Smith", "Lockwood", "Grant")
      );
if ($value != 0)
        $array["ITEMPURCHASED"] = array ("DVD", "Book", "Comic");
}

也可以使用PHP的array_merge函数。则代码为:

if ($value != 0)
           $arrar1 = array("ITEMPURCHASED" => array ("DVD", "Book", "Comic"));
            $array = array_merge($array,$array1);
 }
$array = array(
   "NAMES" => array("John", "Sara", "Mark"),
   "LASTNAMES" => array ("Smith", "Lockwood", "Grant")
);
if ($value!=0)
{
    $array["ITEMPURCHASED"] = array ("DVD", "Book", "Comic");
}

否,不能在数组内部使用if。您可以根据数组构造函数中的某些条件使用三元运算符来更改值,但由于您根本不想设置项,因此这也不是一个选项。你可以这样做:

$array = array(
  "NAMES"          => array("John", "Sara", "Mark"), 
  "LASTNAMES"      => array ("Smith", "Lockwood", "Grant")
);
if ($value ! =0)
  $array['ITEMPURCHASED'] = array ("DVD", "Book", "Comic");

首先创建数组,就像if的第一部分一样(在if之前复制该代码)

然后使用:

if ($value != 0) {
  $array['ITEMPURCHASED'] = ...;
}

你可以这样做

$array = array(
   "NAMES" => array("John", "Sara", "Mark"),
   "LASTNAMES" => array ("Smith", "Lockwood", "Grant")
);
if ($value!=0)
{
    $array["ITEMPURCHASED"] = array ("DVD", "Book", "Comic");
}