"Joh"/> "Joh">

ホームページ >バックエンド開発 >PHPの問題 >PHPの2次元配列は指定された1次元配列を削除します

PHPの2次元配列は指定された1次元配列を削除します

王林
王林オリジナル
2023-05-06 13:27:07662ブラウズ

PHP プログラミングでは、2 次元配列は非常に一般的なデータ型です。 2 次元配列は、複雑なデータの保存と処理にも使用されます。場合によっては、2 次元配列から特定の 1 次元配列を削除する必要があります。このプロセスは、PHP ではより困難に見えることがよくあります。この記事では、指定した 1 次元配列を 2 次元配列から削除する方法を学びます。

まず、3 つの 1 次元配列を含む単純な 2 次元配列の例を見てみましょう。

$students = array(
    array("name" => "John", "age" => 20, "skill" => "PHP"),
    array("name" => "Mary", "age" => 22, "skill" => "Java"),
    array("name" => "Peter", "age" => 21, "skill" => "Python")
);

Mary という名前の 1 次元配列を削除するとします。どのようにすればよいでしょうか。それ?毛織物?

方法 1: foreach ループを使用して実現する

実現可能な解決策の 1 つは、foreach ループを使用して各 1 次元配列を取得し、各反復で unset() 関数を使用して削除することです。条件の 1 次元配列。

foreach($students as $key => $value) {
  if($value['name'] == 'Mary') {
    unset($students[$key]);
  }
}

この例では、$key は現在の反復のキー、$value は現在の反復の値です。各反復で、名前キーを比較して、条件が満たされるかどうかを判断します。一致する配列が見つかった場合は、unset() 関数を使用して配列を削除します。

方法 2: array_filter() を使用して実装する

指定した 1 次元配列を削除する別の方法は、array_filter() 関数を使用することです。この関数は配列を入力として受け取り、条件を満たす要素が削除された新しい配列を返します。

$students = array_filter($students, function($arr) {
  return $arr['name'] !== 'Mary';
});

この例では、匿名関数を array_filter() 関数に渡します。この関数は $students 配列を反復処理し、各 1 次元配列を入力配列として関数に渡します。無名関数では、!== 演算子を使用して、現在の配列の名前キーが Mary と等しいかどうかを比較します。等しくない場合、array_filter() 関数は新しい配列を返し、条件を満たす要素が保持されます。

方法 3: array_search() を使用して実装する

最後に、array_search() 関数を使用して、削除する 1 次元配列を見つけてから、unset() 関数を使用します。削除するには。

$search_key = array_search('Mary', array_column($students, 'name'));
unset($students[$search_key]);

array_column() 関数を使用して、$students 配列からすべての名前キーの値を新しい配列として返すことに注意してください。 array_search() 関数を使用すると、この新しい配列内で一致する値を検索し、その値のキーを返すことができます。最後に、unset() 関数を使用して、キーに対応する要素を削除します。

概要:

上記は、PHP の 2 次元配列から指定した 1 次元配列を削除するための 3 つの一般的な方法です。各方法には長所と短所があることに注意することが重要です。実装方法を選択するときは、コードのニーズに基づいて最も適切な方法を選択する必要があります。

実際のアプリケーションでは、実情に応じて実装方法を選択します。入れ子ループでも解決できる場合もありますが、データ量が多すぎると非効率になる場合があるので、バランスよく実装してください。パフォーマンスとコードの可読性。

以上がPHPの2次元配列は指定された1次元配列を削除しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。