SYNCERのロゴ
アイキャッチ画像

array_walk_recursive - ユーザー定義の関数を全ての要素に、再帰的に適用する

array_walk_recursiveは、ユーザーが定義したコールバック関数を全ての要素に適用する関数です。array_map()と似ていますが、こちらは配列を改造するためのものではありません。深い階層にまで再帰的に適用されます。

構文

bool array_walk_recursive ( array &$array , callable $callback [, mixed $userdata = NULL ] )

パラメータ

&$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 ) ;
キーは、a、customです。
キーは、b、customです。
キーは、c、customです。
bool(true)

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 ) ;
キーは、a、customです。
キーは、A、customです。
キーは、B、customです。
キーは、C、customです。
キーは、c、customです。
bool(true)
  • Twitterでシェア
  • Facebookでシェア
  • Google+でシェア
  • はてなブックマークでシェア
  • pocketに保存
  • LINEでシェア
更新履歴
2017年6月26日 (月)
コンテンツを公開しました。