戻る

連想配列のキーと値を入れ替える(参考)

PHP

array_flip()関数を使うと、連想配列のキーと値を相互に入れ替えることができます。この関数では、もとの配列を引数に指定することによって、キーと値が逆転された連想配列が返り値になります。その際、もとの配列内容は変化しません。

連想配列のキーには重複した値を設定できません。キーと値を入れ替えた後、重複したキーがある場合には最後のデータのみが有効となり、他のデータは削除されます。

ここでは、元の配列の値は「南米」と「ヨーロッパ」しかないので、array_flip()関数の返り値はデータ数=2の配列となります。また、元の配列で最初に出くる『値が「南米」である「ブラジル」』は、後から出てくる『値が「南米」である「アルゼンチン」』に上書きされます。同様に、値が「ヨーロッパ」であるデータも、最後にでてくる「チェコ」だけが有効になります。

<?php
header("Content-type: text/html; charset=utf-8");

$team = array("ブラジル"=>"南米", 	"イタリア"=>"ヨーロッパ",
			"アルゼンチン"=>"南米", 	"フランス"=>"ヨーロッパ",
			"イングランド"=>"ヨーロッパ", 	"オランダ"=>"ヨーロッパ",
			"スペイン"=>"ヨーロッパ", 	"ポルトガル"=>"ヨーロッパ",
			"ドイツ"=>"ヨーロッパ", 	"チェコ"=>"ヨーロッパ"
			);
			
echo "もとの連想配列のデータ<br>";
while(list($key,$value) = each($team)){
	echo $key . " => " . $value . "<br>";
}

echo "<br>";

$flip = array_flip($team);

echo "入れ替え後の連想配列のデータ<br>";
reset($team);
while(list($key,$value) = each($flip)){
	echo $key . " => " . $value . "<br>";
}
?>

inserted by FC2 system