PHP:内部带有if语句的数组

时间:2013-07-19 08:53:40

标签: php arrays if-statement

大家好,

这是我的代码:

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元素吗?如果是这样,怎么样?

非常感谢

8 个答案:

答案 0 :(得分:11)

$array = array(
    "NAMES" => array("John", "Sara", "Mark"), 
    "LASTNAMES" => array ("Smith", "Lockwood", "Grant")
);

if ($value != 0){
    $array['ITEMPURCHASED'] = array ("DVD", "Book", "Comic");
}

或者,如果$ value不等于0,则可以使用ternary operator将值设置为NULL。

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

试试这个

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

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

答案 3 :(得分:1)

是的,你可以通过以下代码来实现:

$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);
 }

答案 4 :(得分:0)

$array = array(
   "NAMES" => array("John", "Sara", "Mark"),
   "LASTNAMES" => array ("Smith", "Lockwood", "Grant")
);

if ($value!=0)
{
    $array["ITEMPURCHASED"] = array ("DVD", "Book", "Comic");
}

答案 5 :(得分:0)

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

$array = array(
  "NAMES"          => array("John", "Sara", "Mark"), 
  "LASTNAMES"      => array ("Smith", "Lockwood", "Grant")
);

if ($value ! =0)
  $array['ITEMPURCHASED'] = array ("DVD", "Book", "Comic");

答案 6 :(得分:0)

首先创建数组,如if的第一部分(复制if之前的代码)

然后使用:

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

答案 7 :(得分:0)

你可以这样做

$array = array(
   "NAMES" => array("John", "Sara", "Mark"),
   "LASTNAMES" => array ("Smith", "Lockwood", "Grant")
);

if ($value!=0)
{
    $array["ITEMPURCHASED"] = array ("DVD", "Book", "Comic");
}