array_walk

array_walk --  配列の各メンバーにユーザー関数を適用する。

説明

int array_walk(array arr, string func, mixed userdata);

arr の各要素に func という名前の関数を適用します。 func には、配列の値が最初の引数として 渡され、配列のキーが2番目のパラメータとして渡されます。 userdata が指定された場合、3番目の引数として ユーザー関数に渡されます。 func が2つまたは3つを超える引数を必要とする場合、 userdata の指定によっては、 array_walkfunc をコールする度に警告が生成されます。 これらの警告は、array_walk の前に '@' マークを付けるか error_reporting を使用することにより 抑制されます。

注意: func により配列の値そのものを変更する必要 がある場合、func の最初の引数は参照として 渡す必要があります。この場合、配列の要素に加えた変更は、配列自体 に対して行われます。

注意: キー及び userdata をfunc に渡す処理は、 バージョン 4.0 で追加されました。

PHP 4 では、array_walkが配列をデフォルト位置に リセットしないため、事前にreset をコールする 必要があります。

例 1. array_walk の例


$fruits = array("d"=>"lemon","a"=>"orange","b"=>"banana","c"=>"apple");
 
function test_alter( &$item1, $key, $prefix ) {
   $item1 = "$prefix: $item1";
}

function test_print( $item2, $key ) {
   echo "$key. $item2<br>\n";
}
 
array_walk( $fruits, 'test_print' );
reset($fruits);
array_walk( $fruits, 'test_alter' , 'fruit' );
reset($fruits);
array_walk( $fruits, 'test_print' );
       

each および list も参照下さい。