PHP 開発では、配列は最も一般的に使用されるデータ型の 1 つです。場合によっては、特定の値が配列内に存在するかどうかを判断する必要がある場合、これを行うには in_array() 関数を使用できます。しかし、値が配列内に存在しないかどうかを判断する必要がある場合はどうすればよいでしょうか?この記事では、この問題を解決する 2 つの方法を紹介します。
方法 1: !in_array() 関数を使用する
in_array() 関数は、配列に値が存在するかどうかを判断できます。存在する場合は true を返し、存在しない場合は false を返します。次に、!in_array() 関数を使用して、配列に値が存在しないかどうかを確認します。以下のように、
$array = array(1, 2, 3, 4, 5); if (!in_array(6, $array)) { echo '6不存在于数组中'; }
コードでは、配列に6が存在しないかを判定し、存在しない場合は「6は配列に存在しません」と出力します。
方法 2: array_search() 関数を使用する
array_search() 関数は、配列内の指定された値を検索し、対応するキー名を返します。検索が成功した場合はキー名が返され、そうでない場合は false が返されます。次に、値が配列内に存在しないかどうかを確認したい場合は、array_search() 関数を使用できます。
$array = array(1, 2, 3, 4, 5); if (false === array_search(6, $array)) { echo '6不存在于数组中'; }
コード内では、array_search()関数を使用して、$array配列内の6のキー名を検索し、検索に失敗してfalseが返された場合は、6が存在しないと判断します。配列内に存在すると「6 が存在しません」と出力されます。
ただし、!in_array() 関数または array_search() 関数を使用して配列に値が存在するかどうかを判断する場合は、戻り値の型と値の両方を比較する必要があることに注意してください。単なる比較値ではありません。 PHP では false が 0 または空の文字列とみなされる場合があるためです。したがって、比較には「===」を使用することをお勧めします。例:
$array = array(0, false, "", null); if (false === array_search(0, $array)) { echo "0不在数组中"; } if (false === in_array(false, $array)) { echo "false不在数组中"; } if (false === in_array("", $array)) { echo "空字符串不在数组中"; } if (false === in_array(null, $array)) { echo "null不在数组中"; }
コードでは、$array 配列には 0、false、空の文字列、null が含まれています。array_search() 関数と in_array() 関数をそれぞれ使用して、これらの値が存在しないかどうかを確認します。配列。 falseは0と空文字列の型が異なるため、比較には「===」を使用する必要があります。
以上、配列に値が存在しないことを判定する2つの方法を紹介しましたので、PHP開発の参考になれば幸いです。
以上がPHP は配列内に存在しないと判断しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。