2017-12-03 7 views
0

私のコードには主なオプションとして配列があります。3レベルの配列オプションで動的キー=>値オプションを追加します

場合によっては、特定のオプションの配列キーに動的キー=>値を追加します。送信者がsender1とき

if($sender == 'sender1'){ 
     $configarray2['fields'] = array(
      "username" => array (
       "FriendlyName" => "username", 
       "Type" => "text", 
       "Size" => "25", 
       "Description" => "", 
       "Default" => "", 
      ), 
      "password" => array (
       "FriendlyName" => "password", 
       "Type" => "password", 
       "Size" => "25", 
       "Description" => "", 
       "Default" => "", 
      ) 
     ); 
} elseif($sender == 'sender2'){ 
     $configarray2['fields'] = array(
      "line" => array (
       "FriendlyName" => "line", 
       "Type" => "text", 
       "Size" => "25", 
       "Description" => "", 
       "Default" => "", 
      ) 
     ); 
} 

出力配列は、この下のようにする必要があります私はconfigarray1フィールドの配列オプションキーこの送信者を追加したい

$configarray1 = array(
    "name" => "Addon", 
    "description" => "module for whmcs", 
    "version" => "1.1", 
    "author" => "Me", 
    "language" => "english", 
    "fields" => array(
     "sender" => array (
      "FriendlyName" => "Sender", 
      "Type" => "dropdown", 
      "Options" => strtolower($GatewaysIM), 
      "Description" => $getBalance, 
      "Default" => $Defaultsender, 
     ), 
     "validateday" => array (
      "FriendlyName" => "Days for Re-validation", 
      "Type" => "text", 
      "Size" => "25", 
      "Description" => "", 
      "Default" => "90", 
     ), 
    )  
); 

これは私の主なオプションの配列です:

$configarray = array(
    "name" => "Addon", 
    "description" => "module for whmcs", 
    "version" => "1.1", 
    "author" => "Me", 
    "language" => "english", 
    "fields" => array(
     "sender" => array (
      "FriendlyName" => "Sender", 
      "Type" => "dropdown", 
      "Options" => strtolower($GatewaysIM), 
      "Description" => $getBalance, 
      "Default" => $Defaultsender, 
     ), 
     "username" => array (
      "FriendlyName" => "username", 
      "Type" => "text", 
      "Size" => "25", 
      "Description" => "", 
      "Default" => "", 
     ), 
     "password" => array (
      "FriendlyName" => "password", 
      "Type" => "password", 
      "Size" => "25", 
      "Description" => "", 
      "Default" => "", 
     ), 
     "validateday" => array (
      "FriendlyName" => "Days for Re-validation", 
      "Type" => "text", 
      "Size" => "25", 
      "Description" => "", 
      "Default" => "90", 
     ), 
    )  
); 

私は配列プッシュをテストしましたが、これは配列の最初の場所にキーを追加します'fields'キーで、私のコードはこれでした$ configarray = array_push($ configarray1、$ configarray2);しかし、これは動作しません!

2つの配列の合計($ configarray = $ configarray1 + $ configarray2)もテストしましたが、これはarray_pushと同じで、私にとって間違った出力を返します。

この問題を解決するにはどうすればよいですか。

答えて

0

ただ宣言する必要があります。新しい変数は必要ありません。ただ、あなたは$ configarray1という名前の元の配列を持っていると仮定すると

if($sender == 'sender1'){ 
    $configarray1['fields']['username'] = array(
     "FriendlyName" => "username", 
     "Type" => "text", 
     "Size" => "25", 
     "Description" => "", 
     "Default" => "", 
    ); 
    $configarray1['fields']['password'] => array(
     "FriendlyName" => "password", 
     "Type" => "password", 
     "Size" => "25", 
     "Description" => "", 
     "Default" => "", 
    ); 
} elseif($sender == 'sender2'){ 
    $configarray1['fields']['line'] = array (
     "FriendlyName" => "line", 
     "Type" => "text", 
     "Size" => "25", 
     "Description" => "", 
     "Default" => "", 
); 
} 
+0

は@subzetaありがとうございます。残念ながらこれは動作しません! 出力は単にconfigarray1です。 –

関連する問題