array_flip

関数の概要

PHPの array_flip 関数は、配列のキーと値を入れ替えるための便利な関数です。配列内のすべてのキーを値に、値をキーに変換した新しい配列を返します。これにより、値をキーとして扱いたい場合や、配列の構造を逆にしたい場合に役立ちます。

パラメータの説明

  • array(必須):キーと値を入れ替えたい配列を指定します。配列の値は文字列か整数である必要があります。

戻り値

キーと値が入れ替わった新しい配列を返します。同じ値が複数あった場合、最後に現れた値のキーが優先されます。元の配列は変更されません。

使用例

基本的な使い方

<?php
$fruits = [
    'a' => 'apple',
    'b' => 'banana',
    'c' => 'cherry',
];

$flipped = array_flip($fruits);
print_r($flipped);
?>

この例では、キーと値が入れ替わり、apple, banana, cherry がキーになり、それぞれ元のキーが値になります。

数値キー・文字列値の配列での使用

<?php
$numbers = [10 => 'ten', 20 => 'twenty', 30 => 'thirty'];
$flipped = array_flip($numbers);
print_r($flipped);
?>

数値のキーも同様に入れ替わり、”ten”、”twenty”、”thirty” がキーになります。

重複した値がある場合の挙動

<?php
$data = ['x' => 'red', 'y' => 'blue', 'z' => 'red'];
$flipped = array_flip($data);
print_r($flipped);
?>

この場合、「red」という値が複数あるため、最後の「red」に対応するキー(この場合 ‘z’)が優先され、古いキーは上書きされます。

関連する関数

  • array_keys:配列のキーを取得する
  • array_values:配列の値を取得する
  • array_map:配列の各値にコールバックを適用する
  • array_flipと併用して配列のデータ変換を効率化

まとめ

array_flip は、PHPで配列のキーと値を簡単に入れ替えたいときに非常に便利な関数です。単純に配列の構造を逆転させたい場合や、値をキーとして検索や参照をしたい場合に活用できます。ただし、配列の値が重複していると最後の値が優先される点に注意が必要です。ぜひ今回の使い方を参考に、実務での配列操作に役立ててください。