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

array_walk - ユーザー定義の関数を全ての要素に適用する

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

構文

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

パラメータ

&$array

対象の配列。

$callback

各要素を引数にして実行されるコールバック関数。第1引数に要素の値、第2引数に要素のキー、第3引数にarray_walk()の第3引数、が渡される。

$userdata

第3引数を指定した場合、コールバック関数の第3引数として渡される。

返り値

bool

処理に成功した場合にtrue、失敗した場合にfalseを返す。

サンプルコード

<?php
	$array = [
		"a" => 1,
		"b" => 2,
		"c" => 3,
	] ;

	function callback( $a, $b, $c ) {
		echo "引数は、" . $a . "、" . $b . "、" . $c . "です。<br>" ;
	}

	$response = array_walk( $array, "callback", "custom" ) ;

デモ

使用例

コールバック関数がどのように引数を受け取り、何回実行されるのかを確認して下さい。

<?php
/*** このコードは編集できます。 ***/

	$array = [
		"a" => 1,
		"b" => 2,
		"c" => 3,
	] ;

	function callback ( $a, $b, $c ) {
		echo "引数は、" . $a . "、" . $b . "、" . $c . "です。<br>" ;
	}

	$response = array_walk( $array, "callback", "custom" ) ;

	var_dump( $response ) ;

処理は第一次元まで

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