PHPのarray_walk()
関数は、配列の全ての要素のキーと値に、ユーザー定義関数を適用する組み込み関数。
定義
論理型 array_walk( 配列型 &$array, コールバック $funcname[, 多様な型 $userdata] );
パラメータ
- 配列型 &$array
コールバック関数を適用したい配列。
配列要素の値を、1つ目の引数として、配列要素のキーを、2つ目の引数として、コールバック関数に渡す。
- コールバック $funcname
コールバック関数。
配列の要素に適用したいユーザー定義関数を指定する。
- 多様な型 $userdata
オプション。
コールバック関数に渡す3つ目の引数を指定できる。
戻り値
論理型。
成功すると「TRUE」、失敗すると「FALSE」を返す。
構文
配列の全ての要素のキーと値に、ユーザー定義関数を適用
論理値 = array_walk( 配列, コールバック関数 );
「配列」の全ての要素に、「コールバック関数」を適用。
「配列」の要素の値を、1つ目の引数、「配列」の要素のキーを、2つ目の引数として、「コールバック関数」に渡す。
配列の全ての要素のキーと値に、ユーザー定義関数を適用(追加引数)
論理値 = array_walk( 配列, コールバック関数, 追加引数 );
「配列」の全ての要素に、「コールバック関数」を適用。
「配列」の要素の値を、1つ目の引数、「配列」の要素のキーを、2つ目の引数、「追加引数」を3つ目の引数として、「コールバック関数」に渡す。
「追加引数」を、配列にすれば、複数の値を渡すこともできる。
サンプル
配列の全ての要素のキーと値に、ユーザー定義関数を適用
<?php
function printArray( $arg1, $arg2 ) {
echo "{$arg2}: {$arg1}<br />";
}
$varArray = array( "白", "黒", "赤", "青", "緑" );
array_walk( $varArray, "printArray" );
?>
function printArray( $arg1, $arg2 ) {
echo "{$arg2}: {$arg1}<br />";
}
$varArray = array( "白", "黒", "赤", "青", "緑" );
array_walk( $varArray, "printArray" );
?>
↓↓↓出力結果↓↓↓
0: 白
1: 黒
2: 赤
3: 青
4: 緑
1: 黒
2: 赤
3: 青
4: 緑
配列の全ての要素のキーと値に、ユーザー定義関数を適用(追加引数)
<?php
function printArray( $arg1, $arg2, $arg3 ) {
echo "{$arg3}{$arg2}: {$arg1}<br />";
}
$varArray = array( "白", "黒", "赤", "青", "緑" );
array_walk( $varArray, "printArray", "色" );
?>
function printArray( $arg1, $arg2, $arg3 ) {
echo "{$arg3}{$arg2}: {$arg1}<br />";
}
$varArray = array( "白", "黒", "赤", "青", "緑" );
array_walk( $varArray, "printArray", "色" );
?>
↓↓↓出力結果↓↓↓
色0: 白
色1: 黒
色2: 赤
色3: 青
色4: 緑
色1: 黒
色2: 赤
色3: 青
色4: 緑
連想配列の全ての要素のキーと値に、ユーザー定義関数を適用
<?php
function printArray( $arg1, $arg2 ) {
echo "{$arg2}: {$arg1}<br />";
}
$varArray = array(
"white" => "白",
"black" => "黒",
"red" => "赤",
"blue" => "青",
"green" => "緑"
);
array_walk( $varArray, "printArray" );
?>
function printArray( $arg1, $arg2 ) {
echo "{$arg2}: {$arg1}<br />";
}
$varArray = array(
"white" => "白",
"black" => "黒",
"red" => "赤",
"blue" => "青",
"green" => "緑"
);
array_walk( $varArray, "printArray" );
?>
↓↓↓出力結果↓↓↓
white: 白
black: 黒
red: 赤
blue: 青
green: 緑
black: 黒
red: 赤
blue: 青
green: 緑
連想配列の全ての要素のキーと値に、ユーザー定義関数を適用(追加引数)
<?php
function printArray( $arg1, $arg2, $arg3 ) {
echo "{$arg3}: {$arg2}: {$arg1}<br />";
}
$varArray = array(
"white" => "白",
"black" => "黒",
"red" => "赤",
"blue" => "青",
"green" => "緑"
);
array_walk( $varArray, "printArray", "色" );
?>
function printArray( $arg1, $arg2, $arg3 ) {
echo "{$arg3}: {$arg2}: {$arg1}<br />";
}
$varArray = array(
"white" => "白",
"black" => "黒",
"red" => "赤",
"blue" => "青",
"green" => "緑"
);
array_walk( $varArray, "printArray", "色" );
?>
↓↓↓出力結果↓↓↓
色: white: 白
色: black: 黒
色: red: 赤
色: blue: 青
色: green: 緑
色: black: 黒
色: red: 赤
色: blue: 青
色: green: 緑
連想配列の全ての要素のキーと値に、ユーザー定義関数を適用(複数の追加引数)
<?php
function printArray( $arg1, $arg2, $arg3 ) {
echo "{$arg3[0]}: {$arg2}: {$arg3[1]}: {$arg1}<br />";
}
$varArray = array(
"white" => "白",
"black" => "黒",
"red" => "赤",
"blue" => "青",
"green" => "緑"
);
array_walk( $varArray, "printArray", array( "COLOR", "色" ) );
?>
function printArray( $arg1, $arg2, $arg3 ) {
echo "{$arg3[0]}: {$arg2}: {$arg3[1]}: {$arg1}<br />";
}
$varArray = array(
"white" => "白",
"black" => "黒",
"red" => "赤",
"blue" => "青",
"green" => "緑"
);
array_walk( $varArray, "printArray", array( "COLOR", "色" ) );
?>
↓↓↓出力結果↓↓↓
COLOR: white: 色: 白
COLOR: black: 色: 黒
COLOR: red: 色: 赤
COLOR: blue: 色: 青
COLOR: green: 色: 緑
COLOR: black: 色: 黒
COLOR: red: 色: 赤
COLOR: blue: 色: 青
COLOR: green: 色: 緑
連想配列の全ての要素のキーと値に、ユーザー定義関数を適用(参照渡し)
ユーザー定義関数に、配列要素の値を、参照渡しで受け渡すことにより、配列要素の値を変更することも可能。
<pre>
<?php
function editArray( &$arg1, $arg2 ) {
$arg1 = "{$arg2}は、{$arg1}。";
}
$varArray = array(
"white" => "白",
"black" => "黒",
"red" => "赤",
"blue" => "青",
"green" => "緑"
);
array_walk( $varArray, "editArray" );
print_r( $varArray );
?>
</pre>
<?php
function editArray( &$arg1, $arg2 ) {
$arg1 = "{$arg2}は、{$arg1}。";
}
$varArray = array(
"white" => "白",
"black" => "黒",
"red" => "赤",
"blue" => "青",
"green" => "緑"
);
array_walk( $varArray, "editArray" );
print_r( $varArray );
?>
</pre>
↓↓↓出力結果↓↓↓
Array
(
[white] => whiteは、白。
[black] => blackは、黒。
[red] => redは、赤。
[blue] => blueは、青。
[green] => greenは、緑。
)
(
[white] => whiteは、白。
[black] => blackは、黒。
[red] => redは、赤。
[blue] => blueは、青。
[green] => greenは、緑。
)