"Joh"/> "Joh">
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 サイトの他の関連記事を参照してください。