PHPのeach()
関数は、配列から、内部ポインタが現在指している配列要素のキーと値を取得し、内部ポインタを次にひとつ進める組み込み関数。
each()
は、list()と共に使うことが多い。
定義
配列型 each( 配列型 &$array );
パラメータ
- 配列型 &$array
対象の配列を指定。
戻り値
内部ポインタが現在指している配列要素のキーと値を格納した配列。
戻り値の配列には、「1、value、0、key」がキーの4つの配列要素がある。「1」と「value」がキーの配列要素には、対象の配列「配列型 &$array」の「値」を格納。「0」と「key」がキーの配列要素には、対象の配列「配列型 &$array」の「キー」を格納。
次の配列要素がない場合、「FALSE」を返す。
構文
現在の配列要素のキーと値を取得し、内部ポインタを次に進める
配列 = each( 配列 );
配列から、内部ポインタが現在指している配列要素のキーと値を取得し、内部ポインタを次にひとつ進める。
現在の配列要素のキーと値を変数に格納し、内部ポインタを次に進める
list()と共に使う方法。
list( $key, $val ) = each( 配列 )
「配列」から、内部ポインタが現在指している配列要素のキーと値を取り出し、キーを変数「$key」に、値を変数「$val」に格納。内部ポインタを次にひとつ進める。
すべての配列要素のキーと値を、順番に取得
while( list( $key, $val ) = each( 配列 ) ){
// 処理文
}
// 処理文
}
「配列」から、順番に配列要素のキーと値を取り出し、キーを変数「$key」に、値を変数「$val」に格納。
サンプル
配列から、現在の配列要素のキーと値を取得し、内部ポインタを次に進める
<pre>
<?php
$varArray = array( "レッド", "ブルー" , "イエロー" );
$varEach = each( $varArray );
print_r( $varEach );
$varEach = each( $varArray );
print_r( $varEach );
?>
</pre>
<?php
$varArray = array( "レッド", "ブルー" , "イエロー" );
$varEach = each( $varArray );
print_r( $varEach );
$varEach = each( $varArray );
print_r( $varEach );
?>
</pre>
↓↓↓出力結果↓↓↓
Array
(
[1] => レッド
[value] => レッド
[0] => 0
[key] => 0
)
Array
(
[1] => ブルー
[value] => ブルー
[0] => 1
[key] => 1
)
(
[1] => レッド
[value] => レッド
[0] => 0
[key] => 0
)
Array
(
[1] => ブルー
[value] => ブルー
[0] => 1
[key] => 1
)
連想配列から、現在の配列要素のキーと値を取得し、内部ポインタを次に進める
<pre>
<?php
$varArray = array(
"red" => "レッド",
"blue" => "ブルー",
"yellow" => "イエロー"
);
$varEach = each( $varArray );
print_r( $varEach );
$varEach = each( $varArray );
print_r( $varEach );
?>
</pre>
<?php
$varArray = array(
"red" => "レッド",
"blue" => "ブルー",
"yellow" => "イエロー"
);
$varEach = each( $varArray );
print_r( $varEach );
$varEach = each( $varArray );
print_r( $varEach );
?>
</pre>
↓↓↓出力結果↓↓↓
Array
(
[1] => レッド
[value] => レッド
[0] => red
[key] => red
)
Array
(
[1] => ブルー
[value] => ブルー
[0] => blue
[key] => blue
)
(
[1] => レッド
[value] => レッド
[0] => red
[key] => red
)
Array
(
[1] => ブルー
[value] => ブルー
[0] => blue
[key] => blue
)
多次元配列から、現在の配列要素のキーと値を取得し、内部ポインタを次に進める
<pre>
<?php
$varArray = array(
"english" => array( "red", "blue", "yellow" ),
"kanji" => array(
"aka" => "赤",
"ao" => "青",
"ki" => "黄"
),
"katakana" => array( "レッド", "ブルー", "イエロー" )
);
$varEach = each( $varArray );
print_r( $varEach );
$varEach = each( $varArray );
print_r( $varEach );
?>
</pre>
<?php
$varArray = array(
"english" => array( "red", "blue", "yellow" ),
"kanji" => array(
"aka" => "赤",
"ao" => "青",
"ki" => "黄"
),
"katakana" => array( "レッド", "ブルー", "イエロー" )
);
$varEach = each( $varArray );
print_r( $varEach );
$varEach = each( $varArray );
print_r( $varEach );
?>
</pre>
↓↓↓出力結果↓↓↓
Array
(
[1] => Array
(
[0] => red
[1] => blue
[2] => yellow
)
[value] => Array
(
[0] => red
[1] => blue
[2] => yellow
)
[0] => english
[key] => english
)
Array
(
[1] => Array
(
[aka] => 赤
[ao] => 青
[ki] => 黄
)
[value] => Array
(
[aka] => 赤
[ao] => 青
[ki] => 黄
)
[0] => kanji
[key] => kanji
)
(
[1] => Array
(
[0] => red
[1] => blue
[2] => yellow
)
[value] => Array
(
[0] => red
[1] => blue
[2] => yellow
)
[0] => english
[key] => english
)
Array
(
[1] => Array
(
[aka] => 赤
[ao] => 青
[ki] => 黄
)
[value] => Array
(
[aka] => 赤
[ao] => 青
[ki] => 黄
)
[0] => kanji
[key] => kanji
)
連想配列のキーと値を順番に取得
each()
は、list()と共に使うことが多い。
<?php
$var = array(
"red" => "レッド",
"blue" => "ブルー",
"yellow" => "イエロー"
);
while( list( $key, $val ) = each( $var ) ){
echo "$key => $val<br />";
}
?>
$var = array(
"red" => "レッド",
"blue" => "ブルー",
"yellow" => "イエロー"
);
while( list( $key, $val ) = each( $var ) ){
echo "$key => $val<br />";
}
?>
↓↓↓出力結果↓↓↓
red => レッド
blue => ブルー
yellow => イエロー
blue => ブルー
yellow => イエロー