PHPのarray_flip関数の使い方!配列のキーと値を反転する

PHPのarray_flip関数について書いています。

array_flip関数は、配列のキーと値を反転させた新しい配列を作成します。
元の配列のキーが新しい配列の値となり、元の配列の値が新しい配列のキーとなります。

この関数を使うと、連想配列のキーと値を入れ替えたい場合などに便利です。

array_flip関数の基本的な使い方

array_flip 関数は、配列のキーと値を反転させた新しい配列を返します。
基本的な構文は以下のとおりです。

array_flip(array $array): array
  • $array: 反転させる配列。
    • キーと値を反転させたい配列を指定します。
    • 値はintまたはstringである必要があります。そうでない場合、警告が発生し、そのキーと値のペアは反転後の配列に追加されません。

array_flip関数の戻り値

array_flip 関数の戻り値は、キーと値が反転された新しい配列です。
元の配列に同じ値が複数存在する場合、反転後の配列では後のキーが優先されます。(先に現れたキーは失われます)

連想配列のキーと値を反転させる

実際に連想配列のキーと値を反転させてみます。

<?php
$array = ['a' => 1, 'b' => 2, 'c' => 3];

$flipped_array = array_flip($array);

print_r($flipped_array);
// 結果:Array ( [1] => a [2] => b [3] => c )
?>

文字列のキーと、数値の値を持った$array配列を作成しました。

その次の処理で、array_flip関数を使用して、連想配列のキーと値を反転させています。
連想配列$arrayのキー (a, b, c) を値に、値 (1, 2, 3) をキーに反転させます。

返ってきた配列($flipped_array)を確認すると、キーと値が反転していることが確認できました。

配列のインデックスと値を反転させる

数値だけの配列のインデックスと値を反転させてみます。

<?php
$array = [10, 20, 30];

$flipped_array = array_flip($array);

print_r($flipped_array);
// 結果:Array ( [10] => 0 [20] => 1 [30] => 2 )
?>

数値だけの値を並べた$array配列を作成しました。
単純な配列のキーは0から始まって、今回の例の場合は012です。

返り値の$flipped_arrayをを出力すると
インデックス (0, 1, 2) を値に、値 (10, 20, 30) をキーに反転させた結果が返ってきていることが確認できました。

値に数値と文字列以外を指定すると?

文字列に整数値と文字列以外を指定してみます。

$array = ['apple' => 100, 'grape' => 200, 'orange' => null, 'banana' => 300, 3.14, true];
$flipped_array = array_flip($array);

print_r($flipped_array);

// 結果:Array
// (
//     [100] => apple
//     [200] => grape
//     [300] => banana
// )
?>

値にnullや小数点の3.14、論理型のtrueを指定した配列を作成しました。
これをarray_flip関数にかけると、下記のように警告が表示されます。

Warning: array_flip(): Can only flip string and integer values, entry skipped...

そして、値が数値・文字列のみの場所が反転されて、結果が返ってきます。

PHPのarray_flip関数の使い方まとめ

今回はPHPのarray_flip関数の使い方について解説しました。
この記事の内容をまとめます。

・`array_flip(array $array): array` で配列のキーと値を反転させた新しい配列を作成する。
・元の配列のキーが新しい配列の値となり、元の配列の値が新しい配列のキーとなる。
・反転元の配列の値は、数値または文字列である必要がある。
・元の配列に同じ値が複数存在する場合、反転後の配列では後のキーが優先される。
PHP

コメント