11

連想配列をインスタンス化してから、2回目の呼び出しで、1つのブロック行に他のさまざまな値セットを割り当てようとしています。インスタンス化と同じ形式でこれを実行したいと思います。

"variable"  = > 'value';

私のインスタンス化は次のとおりです。

$post_values = array(
    "x_login"           => "API_LOGIN_ID",
    "x_tran_key"        => "TRANSACTION_KEY",
);

追加したい:

"x_version"         => "3.1",
"x_delim_data"      => "TRUE",
"x_delim_char"      => "|",
"x_relay_response"  => "FALSE",
"x_state"           => "WA",
"x_zip"             => "98004"

私のオプションは何ですか?おそらく、より簡単に複数の値を追加することについて私が知らないarray_pushの使用法がありますか?または、次のように呼び出しごとに値を追加することに固執していますか?

$post_values['x_version']='3.1'; 
 ....
$post_values['x_zip']='98004';

1行で連想配列に複数の値を追加する他の優雅な方法はありますか?

4

4 に答える 4

8

これを試して:

$post_values = array( 
    "x_login"           => "API_LOGIN_ID", 
    "x_tran_key"        => "TRANSACTION_KEY", 
); 

$array2 = array(
    "x_version"         => "3.1",  
    "x_delim_data"      => "TRUE",  
    "x_delim_char"      => "|",  
    "x_relay_response"  => "FALSE",  
    "x_state"           => "WA",  
    "x_zip"             => "98004"  
);

$result = $post_values + $array2;

ただし、注意:キーが$ post_valuesにすでに存在する場合、キーは上書きされません。

于 2011-10-30T16:56:28.277 に答える
5

物事をきれいに、そしてこの場合はシンプルに保つために、array_merge( )を使用する方が良いかもしれません

私はクラスファイルの先頭で配列を個人的に宣言して、グローバルにアクセスできるようにします。これは、メソッドを配列宣言から解放する傾向があるためです(OCDだと思います!)

だから私はあなたを助けるかもしれない例を持っています.2つの配列を一緒に追加/マージする必要があるときに私のために働くものです:

protected $array1 = array (
  'basic'   => '1',
  'example' => '2',
  'for'     => '3'  
);

protected $array2 = array(
  'merging'     => '4',
  'two'         => '5',
  'associative' => '6',
  'arrays'      => '7',
  'mate'        => '8'
);

次に、クラス ファイル内で、これらの配列または作成した配列を使用して、必要なときにいつでもマージできます。

public function ExampleOne() 
{
  $firstArray = $this->array1;
  print_r($firstArray);

  $secondArray = $this->array2;
  print_r($secondArray);

  $merged = array_merge($firstArray, $secondArray);
  print_r($merged);
}

各 print_r( ) は、data/created 配列をコンソールに出力します。これは、すべてが正しく作成され、各キーに関連付けられた値があることを自分で確認できるようにするためです ( print_r( )の明確な説明については、PHP の man ページを確認してください)。

したがって、最初の配列はこれを示します/示す必要があります。

Array
(
  [basic]   => 1
  [example] => 2
  [for]     => 3
)

2 番目の配列はこれを示します。

Array
(
  [merging]     => 4
  [two]         => 5
  [associative] => 6
  [arrays]      => 7
  [mate]        => 8
)

そして、array_merge( ) 操作は最終的な配列を作成します。

Array
(
  [basic]       => 1
  [example]     => 2
  [for]         => 3
  [merging]     => 4
  [two]         => 5
  [associative] => 6
  [arrays]      => 7
  [mate]        => 8
)

もちろん、常にクラス ファイルの先頭に配列を配置/作成する必要はありません。また、必要に応じて、単一の関数内でのみ必要/使用される場合は、明らかに配列を作成できます。ここで紹介したのは仕事中のプロジェクトで最近行ったこと (もちろん、これらの配列のデータはサンプル データです!)

これが人々をもう少し助けることを願っています:-D

于 2015-08-21T10:09:44.573 に答える
2

array_push() プッシュされる配列を受け入れます。
しかしarray_merge()、もっとあなたが望むものかもしれません。

于 2011-10-30T16:56:35.407 に答える
1

次の関数を使用してみることができます:array_merge

于 2011-10-30T16:55:12.973 に答える