概要
まず初めに、array_walk関数について解説します。

前2つのパラメータである「配列」と「関数名」は必須です。
オプションのプレフィックスは実行する関数によって、必要な場合に指定します。
指定する関数名は「'(シングルクォーテーション)」、または「"(ダブルクォーテーション)」で囲みます。
1つ目のパラメータである配列を渡すと、その配列の先頭から要素を1つずつ取り出して、2つ目のパラメータで指定した関数を実行します。
この処理が要素の数だけ繰り返されるので、簡易なループ文のような扱い方ができる関数です。
それでは、実際にコードの動作をみていきましょう。
配列のキー&値のペアをすべて出力
配列から値を1つずつ取り出し、キーと値のペアを出力する簡単な関数を実行してみます。
PHP コード例
// 渡されたキーと値を出力
function dumpValue( $value, $key) {
var_dump($key . ' : ' . $value);
}
// 配列を宣言
$animals = array(
"dog" => "Bob",
"cat" => "Carlie",
"fox" => "Taro",
);
array_walk( $animals, 'dumpValue');

あらかじめ、dumpValue関数と配列$animalsを宣言します。
最終行のarray_walk関数では、$animalsの先頭から要素を1つずつ取り出し、dumpValue関数へ渡して実行しています。
今回の例では配列に入ってる要素が3つなので、dumpValue関数も3回実行されました。
下記のように、上記のコードと全く同じ処理をループ文で書くことも可能です。
PHP コード例
foreach( $animals as $key => $value ) {
var_dump($key . ' : ' . $value);
}
関数にプレフィックスを渡す
次に、3つ目のパラメータである「プレフィックス」を指定して実行してみます。
PHP コード例
// 渡されたキー、値、プレフィックスを出力
function dumpValue2( $value, $key, $prefix) {
var_dump( $prefix . ' ' . $key . ' : ' . $value);
}
// 配列を宣言
$animals = array(
"dog" => "Bob",
"cat" => "Carlie",
"fox" => "Taro",
);
array_walk( $animals, 'dumpValue2', 'GrayPark');

今回は3つ目のパラメータにプレフィックスとして「GrayPark」を関数に渡しています。
出力結果から、渡した値やキーと一緒にプレフィックスも渡っていることが確認できました。