PHPのlist()
関数は、配列の値を、複数の変数に代入する。連想配列や多次元配列の展開にも便利だ。
list()
は、実際には関数ではなく、PHP言語の構成要素のひとつ。
定義
構文
配列の値を変数に格納
list( 変数1, 変数2, 変数3 ) = 配列;
配列の値を、「変数1~3」に代入。
サンプル
配列の値を変数に格納
<?php
$var = array( "レッド", "ブルー" , "イエロー" );
list( $varA, $varB, $varC ) = $var;
echo "$varA<br />";
echo "$varB<br />";
echo "$varC<br />";
?>
$var = array( "レッド", "ブルー" , "イエロー" );
list( $varA, $varB, $varC ) = $var;
echo "$varA<br />";
echo "$varB<br />";
echo "$varC<br />";
?>
↓↓↓出力結果↓↓↓
レッド
ブルー
イエロー
ブルー
イエロー
配列の値を添字付き変数に格納
<?php
$var = array( "レッド", "ブルー" , "イエロー" );
list( $var[A], $var[B], $var[C] ) = $var;
echo "$var[A]<br />";
echo "$var[B]<br />";
echo "$var[C]<br />";
?>
$var = array( "レッド", "ブルー" , "イエロー" );
list( $var[A], $var[B], $var[C] ) = $var;
echo "$var[A]<br />";
echo "$var[B]<br />";
echo "$var[C]<br />";
?>
↓↓↓出力結果↓↓↓
レッド
ブルー
イエロー
ブルー
イエロー
連想配列のキーと値を変数に格納
<?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 => イエロー
多次元配列の値を変数に格納
<?php
$var = array(
array( "red", "blue", "yellow" ),
array( "レッド", "ブルー", "イエロー" ),
array( "赤", "青", "黄" )
);
list( $varA, list( $varB_1, $varB_2, $varB_3 ), list( $varC[a], $varC[b], $varC[c] ) ) = $var;
echo "$varA[0]<br />";
echo "$varA[1]<br />";
echo "$varA[2]<br />";
echo "$varB_1<br />";
echo "$varB_2<br />";
echo "$varB_3<br />";
echo "$varC[a]<br />";
echo "$varC[b]<br />";
echo "$varC[c]<br />";
?>
$var = array(
array( "red", "blue", "yellow" ),
array( "レッド", "ブルー", "イエロー" ),
array( "赤", "青", "黄" )
);
list( $varA, list( $varB_1, $varB_2, $varB_3 ), list( $varC[a], $varC[b], $varC[c] ) ) = $var;
echo "$varA[0]<br />";
echo "$varA[1]<br />";
echo "$varA[2]<br />";
echo "$varB_1<br />";
echo "$varB_2<br />";
echo "$varB_3<br />";
echo "$varC[a]<br />";
echo "$varC[b]<br />";
echo "$varC[c]<br />";
?>
↓↓↓出力結果↓↓↓
red
blue
yellow
レッド
ブルー
イエロー
赤
青
黄
blue
yellow
レッド
ブルー
イエロー
赤
青
黄