PHP では、配列から特定の値を削除する必要がある場合、それを行う方法がいくつかあります。この記事では、これらの方法について説明します。次の配列があるとします。
$arr = array(1, 2, 3, 4, 5, 6, 7, 8, 9);
array_filter()
この関数を使用すると、配列内の必要な値をフィルタリングして除外できます。新しい配列を返します。コールバック関数を渡すだけでよく、このコールバック関数が「必要な値」の基準を決定します。この例では、配列から値 5 の項目を削除したいので、次のようにコールバック関数を渡すことができます:
function remove_5($value) { return $value != 5; } $arr = array_filter($arr, "remove_5");
この関数は、PHP の弱い型指定の比較演算子を利用します!=
。値を比較するときに型変換を自動的に実行します。これは、入力値が文字列であるか整数であるかなどを心配する必要がないことを意味します。
array_filter()
この関数は、指定された条件を満たす要素のみを返し、元の添え字に基づいて新しい配列を構築します。この時点で、この新しい配列の添え字がリセットされていることがわかります。そのため、元の添え字を保持したい場合は、別の方法を使用する必要があります。
array_search()
この関数を使用すると、配列内の指定された値を検索し、そのキーを返すことができます。 unset()
関数を使用して、このキーに対応する要素を削除できます。コードは次のとおりです。
$key = array_search(5, $arr); if ($key !== false) { unset($arr[$key]); }
この例では、まず array_search()
関数を使用してキー 5 の要素を検索し、見つかった場合は unset( )
関数を使用して削除します。
array_search()
関数では、最初のパラメータは検索する値、2 番目のパラメータは検索する配列であることに注意してください。値が見つからない場合は、false
が返されます。
array_diff()
関数を使用すると、ある配列を別の配列と比較し、2 つの配列の差を返すことができます。この例では、以下に示すように、この関数を使用して値 5 の項目を削除できます。
$remove = array(5); $arr = array_diff($arr, $remove);
この関数は、比較される 2 つの配列である 2 つのパラメーターを受け取ります。最初の配列には存在するが 2 番目の配列には存在しない要素を含む配列を返します。
最後の方法では、foreach ループを使用して配列を走査し、unset()
関数を使用して必要な値を削除する必要があります。 。コードは次のとおりです。
foreach ($arr as $key => $value) { if ($value == 5) { unset($arr[$key]); } }
このメソッドを使用すると、各要素に直接アクセスでき、ループ内で配列自体を変更できます。ただし、この方法は複雑性が高いためパフォーマンスに影響を与える可能性があり、配列が大きい場合にはパフォーマンスの問題が発生する可能性があります。
PHP では、配列から指定した要素を削除する方法がたくさんあります。 array_filter()
関数を使用して削除する必要のない要素を返すことも、array_search()
関数と unset()## を使用することもできます。 # 削除する必要がある要素を削除する関数。
array_diff() 関数を使用して 2 つの配列を比較し、その差を返すこともできます。最後に、ループと
unset() 関数を使用して配列を反復処理し、指定された要素を直接削除できます。特定のアプリケーションでは、実際のニーズに基づいて最適な方法を選択できます。
以上がPHP配列から指定された値を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。