array_walk_recursive - ユーザー定義の関数を全ての要素に、再帰的に適用する
array_walk_recursiveは、ユーザーが定義したコールバック関数を全ての要素に適用する関数です。array_map()と似ていますが、こちらは配列を改造するためのものではありません。深い階層にまで再帰的に適用されます。
構文
パラメータ
&$array
対象の配列。
$callback
各要素を引数にして実行されるコールバック関数。第1引数に要素の値、第2引数に要素のキー、第3引数にarray_walk_recursive()の第3引数、が渡される。
$userdata
第3引数を指定した場合、コールバック関数の第3引数として渡される。
返り値
bool
処理に成功した場合にtrue、失敗した場合にfalseを返す。
サンプルコード
<?php
$array = [
"a" => 1,
"b" => [
"A" => 2,
"B" => 3,
"C" => 4,
],
"c" => 5,
] ;
function callback( $a, $b, $c ) {
echo "キーは、" . $b . "、" . $c . "です。<br>" ;
}
$response = array_walk( $array, "callback", "custom" ) ;
デモ
array_walk()の処理は、一次元目にまで、適用されます。
<?php
/*** このコードは編集できます。 ***/
$array = [
"a" => 1,
"b" => [
"A" => 2,
"B" => 3,
"C" => 4,
],
"c" => 5,
] ;
function callback ( $a, $b, $c ) {
echo "キーは、" . $b . "、" . $c . "です。<br>" ;
}
$response = array_walk( $array, "callback", "custom" ) ;
var_dump( $response ) ;
array_walk_recursive()なら、深い階層にまで再帰的に適用されます。
<?php
/*** このコードは編集できます。 ***/
$array = [
"a" => 1,
"b" => [
"A" => 2,
"B" => 3,
"C" => 4,
],
"c" => 5,
] ;
function callback ( $a, $b, $c ) {
echo "キーは、" . $b . "、" . $c . "です。<br>" ;
}
$response = array_walk_recursive( $array, "callback", "custom" ) ;
var_dump( $response ) ;
参考
- PHP: array_walk_recursive
- PHPの公式リファレンス。
関連記事
- array_replace
- 配列を置換して合成する。
- array_merge_recursive
- 複数の配列を再帰的にマージする。
- array_walk
- ユーザー定義の関数を全ての要素に適用する。
- array_replace_recursive
- 配列を再帰的に、置換して合成する。
- count
- 配列の要素数を取得する。
- array_map
- 配列の各要素に処理を適用する。