ユーザ関数を使って複数の配列を操作する
![]()
array_ map関数は、引数に指定した入れ打つのすべての要素に対してユーザが定義したコールバック関数を適用し、適用後のすべての要素を含む配列を返しますので、要素の内容を加工したい場合などに便利です。
引数には複数の配列を指定することができますので、複数の配列の内容をいっぺんに加工したり複数の配列を一つの多次元配列にしたりするというような使い方もできます。ただし、引数に複数の配列を指定する場合は、各配列の要素数が同一でなければなりません。「関数名」には、基本的に定義したコールバック関数の名前を指定しますが、「NULL」を指定することもできます。「関数名」の部分に「NULL」を指定すると、次のように複数の配列を一つの多次元配列として返します。
コールバック関数は、以下のような形式で定義する必要があります。
コールバック関数には、配列の要素を操作するためのコードを記述し、最後にreturn文で操作後の値を返すようにします 。
コールバック関数の引数の数は、array_map関数の引数に指定した配列の数とあわせる必要があります。例えば、array_map関数の引数として二つの配列を指定した場合はコールバック関数も二つの引数をとるようにします。なお、PHP5ではコールバック関数の変わりにメソッドを指定することもできます。その場合は、「関数名」を指定する変わりに「array(クラス名, メソッド名)」という形の配列を指定します。(array_filete関数やarray_reduce関数、array_walk関数などでも同様にしてメソッドを指定することができます)。