現在の位置: ホーム> 最新記事一覧> array_flip()は、null、false、および空の文字列値をサポートできますか?

array_flip()は、null、false、および空の文字列値をサポートできますか?

M66 2025-06-03

PHPでは、 array_flip()関数を使用して、配列内のキーと値を交換します。その基本機能は、配列のキーを値として、アレイの値をキーとして取得することです。次のような配列があるとします:

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

array_flip($ array)を呼び出した後、結果は次のとおりです。

 $flippedArray = [
    1 => 'a',
    2 => 'b',
    3 => 'c'
];

array_flip()の使用中、Arrayの値にnullfalse 、または空の文字列などの特別なタイプのデータが含まれている場合、反転した結果に影響する可能性があります。以下に、これら3つの特別な値のarray_flip()の動作について詳しく説明します。

1。null

配列内の値がnullの場合、 array_flip()nullをキーとして取得します。具体的には、PHPのnullは空の文字列として処理されます。つまり、複数のヌル値が同じキーになり、最終的には1つのキーのみが保持されます。したがって、配列にヌル値が重複している場合、フリップされた結果には1つのキーのみがあります。

 $array = [
    'a' => null,
    'b' => null
];

$flippedArray = array_flip($array);
print_r($flippedArray);

出力の結果は次のとおりです。

 Array
(
    [0] => b
)

ご覧のとおり、元の配列には2つのヌル値がありますが、フリップの後、 null0として扱われ、 bはaを上書きします。

2。偽の

false値の場合、 array_flip()は整数0に変換します。 nullと同様に、 falseは特定の値を持つキーとして扱われるため、配列に複数の誤った値がある場合、反転後にキーの競合があり、最後のキー値ペアのみが保持されます。

 $array = [
    'a' => false,
    'b' => false
];

$flippedArray = array_flip($array);
print_r($flippedArray);

出力の結果は次のとおりです。

 Array
(
    [0] => b
)

ここでは、 false0に変換され、 BはA上書きAであるため、Flipped配列には1つのキー0のみがあります。

3。空の文字列( "" )値

空の文字列( "" )がarray値として使用される場合、 array_flip()はそれをキーとして扱います。空の文字列は他の値のようなキーとして使用できるため、配列に複数の空の文字列値がある場合、それらも競合し、最終的には最後の空の文字列のキーのみが保存されます。

 $array = [
    'a' => '',
    'b' => ''
];

$flippedArray = array_flip($array);
print_r($flippedArray);

出力の結果は次のとおりです。

 Array
(
    [] => b
)

フリップされた配列では、空の文字列がキーとして扱われます( []は空の文字列を意味します)、 bはaを上書きします。

要約します

Array_flip()の動作は、特別な値に遭遇したときに次のように要約されています。

  • ヌル値は0として扱われ、複数のヌル値がキーの競合を引き起こし、最後のキーのみが残ります。

  • false値は整数0に変換され、複数の誤った値もキーの競合を引き起こし、最後のキーが残ります。

  • 空の文字列( "" )が値として使用される場合、キーと見なされます。複数の空の文字列には重要な競合があり、最後の空の文字列のキーのみが保持されます。

したがって、 array_flip()を使用する場合、配列にこれらの特別な値が含まれている場合、重要な競合の問題に特別な注意を払う必要があります。不必要な競合を避けるために、 Array_flip()を使用する前に、Array値のタイプを確認して、望ましくない特別な値がないことを確認することをお勧めします。