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>"; } ?>