値 (キーではない) による PHP 配列からの要素の削除
PHP で配列を扱う場合、多くの場合、要素に基づいて要素を削除する必要があります。キーではなく値に基づいて。次のような配列を考えてみましょう:
$messages = [312, 401, 1599, 3, ...];
この配列の値は一意であるため、キーを知らずに特定の値を持つ要素を選択的に削除するにはどうすればよいでしょうか?
解決策: array_search() と unset() の使用
PHP には、この目的のために 2 つの便利な関数、array_search() と unset() が用意されています。 unset()。これらの関数を組み合わせると、要素のキーを検索し、それを配列から削除できます。その仕組みは次のとおりです:
if (($key = array_search($del_val, $messages)) !== false) { unset($messages[$key]); }
このコードは、array_search() を使用して、値 $del_val を持つ要素のキーを検索します。キーが見つからない場合、array_search() は FALSE を返します。ただし、厳密な比較演算子 !== を使用して、array_search() が明示的に FALSE を返した場合にのみ式が true と評価されるようにし、false-y 値 (キー 0 など) を回避します。
キーが見つかった場合は、unset() 関数を使用して $messages 配列から要素を削除します。 unset() はキーによって機能することに注意することが重要です。そのため、最初に array_search() からキーを取得する必要があります。
以上がPHP 配列からキーではなく値で要素を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。