1

$ required、$reservedなどのさまざまな変数に格納されている配列がたくさんあります...

(関数内で)オプションの配列を(のように$options = array('required', 'reserved'))渡せるようにしたいのですが、その配列を使用して、どの配列をマージして関数の最後に返すかを定義します。

したがって、関数の一部にこのコードがあります。これは、すべてのオプションを取得し、変数変数を使用して配列をマージし、オプション配列で渡された文字列から配列を取得する必要があります):

$array = array();

foreach ($options as $key) {
  $array_to_merge = ${$key};
  array_merge($array, $array_to_merge);
}

return $array;

ただし、$ arrayを返すと、0個のアイテムが表示されます。私の場合print_r($array_to_merge);、実際には配列全体を取得する必要があります。

array_merge()は単に変数変数で機能しないのですか、それともここで何かが足りないのですか...?

4

2 に答える 2

4

array_merge はマージされた配列を返します。その戻り値を何にも割り当てていないため、失われています。

$array = array_merge($array, $array_to_merge);

問題を解決する必要があります。

于 2011-06-09T17:20:17.537 に答える
1

私が正しく読んだら、コードを単純化して(ループを置き換えて)、次のようにすることもできます。

 $array = call_user_func_array("array_merge", compact($options));

compact変数変数ルックアップを置き換え、配列のリストを取得します。実際には、array_merge必要な呼び出しは 1 つだけです。

于 2011-06-09T17:22:56.567 に答える