PHP では、配列に値が含まれているかどうかを判断するのは非常に簡単です。通常、配列に特定の値が存在するかどうかを確認するには、in_array 関数を使用します。では、配列内に特定の値が存在しないことを確認したい場合はどうすればよいでしょうか?
PHP の公式ドキュメントから in_array 関数を調べると、この関数の戻り値はブール値 (true または false) であることがわかります。指定された値が配列内に見つかった場合は、その値が返されます。 true、それ以外の場合は false を返します。つまり、in_array 関数が false を返した場合、値が配列内にないことを意味します。次の例に示すように:
$fruits = array("apple", "banana", "orange"); if (!in_array("pear", $fruits)) { echo "数组中没有 pear"; }
上の例では、果物 $fruits の配列を作成し、in_array 関数を使用して値 "pear" が配列内に存在するかどうかを確認します。存在しない場合は「配列に梨がありません」と出力されます。
in_array 関数に加えて、array_search 関数を使用して、配列内に値が存在するかどうかを確認することもできます。 array_search 関数は、配列内で指定された値を検索し、見つかった場合は値のキー名を返し、それ以外の場合は false を返します。したがって、array_search 関数が false を返した場合、指定された値が配列内にないことを意味します。次の例に示すように:
$fruits = array("apple", "banana", "orange"); if (array_search("pear", $fruits) === false) { echo "数组中没有 pear"; }
上の例では、フルーツ配列 $fruits も作成しましたが、今回は array_search 関数を使用して、値 "pear" が配列内に存在するかどうかを確認します。 in_array 関数とは異なり、指定された値が見つかった場合、array_search 関数は対応するキー名を返します。したがって、戻り値が false であることを確認するには、3 つの等号 (===) を使用する必要があります。戻り値が 0 (つまり、配列の最初の要素のキー名) の場合、if ステートメントはfalse として解釈されます。これにより、値が存在するかどうかを正しく判断できなくなります。
in_array と array_search に加えて、配列に特定の値が含まれているかどうかを判断する簡単な方法があります。それは、array_diff 関数を使用することです。 array_diff 関数は、配列と配列の差を計算するために使用されます。つまり、最初の配列には表示されるが、後続の配列には表示されない値を返します。最初の配列内のすべての値が後続の配列に出現する場合、空の配列が返されます。つまり、array_diff 関数が空の結果を返した場合、その配列には指定された値が含まれていることを意味します。一方、結果が空でない場合は、配列に値が存在しないことを意味します。次の例に示すように:
$fruits = array("apple", "banana", "orange"); if (count(array_diff(array("pear"), $fruits)) > 0) { echo "数组中没有 pear"; }
上の例では、array_diff 関数を使用して、$fruits 配列と「pear」のみを含む配列を比較します。結果が空でない場合は、「配列に梨がありません」と出力します。
要約すると、in_array、array_search、または array_diff 関数を使用して、配列に指定された値が含まれているかどうかを判断できます。このうち、in_array 関数と array_search 関数は、指定した値が配列内に存在するかどうかを確認するために使用され、array_diff 関数は、配列と配列の差分を計算するために使用されます。これらの関数を if ステートメントで使用するだけで、配列に特定の値が含まれているかどうかを簡単に判断できます。
以上がPHPの配列に特定の値がないかどうかを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。