ホームページ >バックエンド開発 >PHPの問題 >PHPで配列から部分配列を削除する方法

PHPで配列から部分配列を削除する方法

PHPz
PHPzオリジナル
2023-04-20 15:07:24585ブラウズ

PHP では、配列から別の配列を削除する必要がある場合がありますが、これには配列操作が含まれます。この記事では、配列から配列を削除する方法をいくつか紹介します。

1. foreach ループを使用する

まず、foreach ループを使用して配列を走査し、次に in_array 関数を使用して配列要素がターゲット配列に出現するかどうかを判断します。存在する場合は、unset を使用します。この関数は、ターゲット配列からそれを削除します。

サンプル コード:

$arr1 = array('a', 'b', 'c', 'd');
$arr2 = array('a', 'e', 'f');
foreach ($arr2 as $value) {
    if (in_array($value, $arr1)) {
        unset($arr1[array_search($value, $arr1)]);
    }
}
print_r($arr1);

上記のコードは ['b', 'c', 'd'] を出力します。つまり、$arr2 に存在する要素が $arr1 から削除されます。

2. array_diff 関数を使用する

使用できるもう 1 つの方法は、array_diff 関数を使用することで、2 つの配列の異なる値で構成される新しい配列を返すことができます。したがって、対象の配列と削除する配列を 2 つのパラメータとして関数に渡すことができ、削除後の新しい配列を取得できます。

サンプル コード:

$arr1 = array('a', 'b', 'c', 'd');
$arr2 = array('a', 'e', 'f');
$arr3 = array_diff($arr1, $arr2);
print_r($arr3);

上記のコードは ['b', 'c', 'd'] も出力します。つまり、$arr2 に存在する要素が $arr1 から削除されます。 。

3. array_filter 関数を使用する

最後の方法は、コールバック関数を使用して配列要素をフィルターできる array_filter 関数を使用することです。コールバック関数を使用して、削除する配列要素と同じターゲット配列内の要素をフィルタリングし、最終的に削除後の新しい配列を取得できます。

サンプル コード:

$arr1 = array('a', 'b', 'c', 'd');
$arr2 = array('a', 'e', 'f');
$arr3 = array_filter($arr1, function($item) use($arr2) {
    return !in_array($item, $arr2);
});
print_r($arr3);

上記のコードは ['b', 'c', 'd'] も出力します。つまり、$arr2 に存在する要素が $arr1 から削除されます。 。

概要

この記事では、foreach ループ、array_diff 関数、array_filter 関数を使用して、配列から配列を削除する 3 つの方法を紹介します。実際の開発では、状況に応じて適切な方法を選択できます。

以上がPHPで配列から部分配列を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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