この記事では、PHP の foreach ループで配列要素を削除する方法を示します。

1.使用する unset() 関数

を使用して、配列から要素を簡単に削除できます。 unset() 関数。次のソリューションは、foreach ループを使用して連想配列を反復処理し、指定されたキーに一致する配列要素の設定を解除することによって、その使用法を示しています。

ダウンロード  コードを実行する

出力:

Array
(
  [key1] => value1
  [key3] => value3
)

 
の使用法を示す別の例を次に示します。 unset() 関数。ネストされた foreach ループを使用して配列の配列を反復処理し、指定されたキーと値のペアに一致する配列要素を削除します。

ダウンロード  コードを実行する

出力:

Array
(
  [0] => Array
    (
      [name] => Jason
      [age] => 20
    )

  [2] => 配列
    (
      [名前] => アンディ
      [年齢] => 15
    )
)

2.使用する array_splice() 関数

または、 array_splice() foreach ループで配列の指定された部分を削除する関数。たとえば、次のコードは、配列の配列から特定の項目を削除します。 array_splice() 関数。

ダウンロード  コードを実行する

出力:

Array
(
  [0] => Array
    (
      [name] => Jason
      [age] => 20
    )

  [2] => 配列
    (
      [名前] => アンディ
      [年齢] => 15
    )
)

3.使用する array_filter() 関数

PHP 7 より前では、 foreach ループに内部配列ポインタを使用していたため、ループ内で配列キーが削除された場合に予期しない動作が発生する可能性があります。より良い解決策は、 array_filter() これにより、後で非決定論的な動作が発生するリスクがなくなります。の array_filter() 以下に示すように、 function はコールバック関数を受け入れ、述語を満たす配列要素を条件付きで削除します。

ダウンロード  コードを実行する

出力:

Array
(
  [key1] => value1
  [key3] => value3
)

 
コールバックのデフォルト パラメータは配列値であることに注意してください。値の代わりにキーをコールバックに渡したい場合は、 ARRAY_FILTER_USE_KEY オプション。同様に、値とキーの両方をコールバックに渡すには、 ARRAY_FILTER_USE_BOTH オプション。

PHP の foreach ループで配列要素を削除する方法はこれですべてです。