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
から始まって、今回の例の場合は0
・1
・2
です。
返り値の$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
関数の使い方について解説しました。
この記事の内容をまとめます。
・元の配列のキーが新しい配列の値となり、元の配列の値が新しい配列のキーとなる。
・反転元の配列の値は、数値または文字列である必要がある。
・元の配列に同じ値が複数存在する場合、反転後の配列では後のキーが優先される。
コメント