3

こんにちは、みんな、

これが私のコードです:

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 要素のためだけに配列コード全体を繰り返しています。

配列コード全体を繰り返さない方法はありますか? ITEMPURCHASED 要素だけを追加する配列内で if を使用できますか? もしそうなら、どのように?

ありがとうございます

4

8 に答える 8

11
$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
);
于 2013-07-19T08:55:23.070 に答える
1
    $array = array(
    "NAMES"            => array("John", "Sara", "Mark"), 
    "LASTNAMES"      => array ("Smith", "Lockwood", "Grant")
    );
    if($value != 0) {
        $array["ITEMPURCHASED"] = array ("DVD", "Book", "Comic");
    }
于 2013-07-19T08:55:56.873 に答える
1

このようにしてみてください

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

共通配列をループから外して条件を確認し、真の場合は残りの ITEMPURCHASED ベースの配列をメイン配列に追加します。

于 2013-07-19T08:56:17.973 に答える
1

はい、次のコードでそれを行うことができます:

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

array_mergeまたは、PHP の関数を使用することもできます。コードは次のようになります。

if ($value != 0)
           $arrar1 = array("ITEMPURCHASED" => array ("DVD", "Book", "Comic"));
            $array = array_merge($array,$array1);
 }
于 2013-07-19T08:56:22.207 に答える
0
$array = array(
   "NAMES" => array("John", "Sara", "Mark"),
   "LASTNAMES" => array ("Smith", "Lockwood", "Grant")
);

if ($value!=0)
{
    $array["ITEMPURCHASED"] = array ("DVD", "Book", "Comic");
}
于 2013-07-19T08:56:34.260 に答える
0

いいえ、配列内では使用できません。三項演算子を使用して、配列コンストラクター内のいくつかの条件に応じて値を変更できますが、アイテムをまったく設定したくないため、オプションにもなりません。ただし、次のようにすることができます。

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

if ($value ! =0)
  $array['ITEMPURCHASED'] = array ("DVD", "Book", "Comic");
于 2013-07-19T08:56:38.927 に答える