PHPで複数の配列要素を削除する方法

PHPz
リリース: 2023-04-19 09:44:38
オリジナル
682 人が閲覧しました

PHP では、配列要素の削除は一般的なタスクです。通常は配列要素を削除するだけでよく、操作には unset() 関数を使用できます。ただし、複数の配列要素を削除する場合は、別のものが必要です。

この記事では、さまざまな方法を使用して複数の配列要素を削除する方法を紹介します。

方法 1: unset ループと foreach ループを使用する

これは最も一般的な方法の 1 つです。 foreach ループを使用して、削除するすべての配列キー値を反復処理し、unset() 関数を使用してそれらを削除できます。

例:

$myArray = array('apple', 'banana', 'orange', 'pear', 'kiwi', 'watermelon');

$keysToDelete = array(1, 3, 5);

foreach($keysToDelete as $key){
    unset($myArray[$key]);
}

print_r($myArray);
ログイン後にコピー

出力結果:

Array
(
    [0] => apple
    [2] => orange
    [4] => kiwi
)
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

方法 2: array_diff_key() を使用する

array_diff_key() 関数は、次のキーを比較するために使用されます。 2 つの配列 Value は、異なるキー値を持つコレクションで構成される配列を返します。

元の配列と、削除するキー値のみを含む配列を比較し、返された結果を使用して新しい配列を作成できます。

例:

$myArray = array('apple', 'banana', 'orange', 'pear', 'kiwi', 'watermelon');

$keysToDelete = array(1, 3, 5);

$newArray = array_diff_key($myArray, array_flip($keysToDelete));

print_r($newArray);
ログイン後にコピー

出力結果:

Array
(
    [0] => apple
    [2] => orange
    [4] => kiwi
)
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

この例では、array_flip() 関数を使用して、$keysToDelete 配列内のキー値を次のように変換します。キー名。array_diff_key() 関数にはキー名を含む配列が必要です。

方法 3: array_filter() を使用する

array_filter() 関数は、配列内の要素をフィルターするために使用されます。これを使用して、削除するキー値を除外し、新しい配列を作成できます。

例:

$myArray = array('apple', 'banana', 'orange', 'pear', 'kiwi', 'watermelon');

$keysToDelete = array(1, 3, 5);

$newArray = array_filter($myArray, function($key) use ($keysToDelete){
    return !in_array($key, $keysToDelete);
}, ARRAY_FILTER_USE_KEY);

print_r($newArray);
ログイン後にコピー

出力結果:

Array
(
    [0] => apple
    [2] => orange
    [4] => kiwi
)
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

この例では、array_filter() の 2 番目のパラメーターとして無名関数を使用します。 true の値は配列内に保持されますが、それ以外の場合はフィルターで除外されます。 in_array() 関数を使用して、要素のキー値が削除する配列内にあるかどうかを確認し、存在しない場合は true を返します。

結論

PHP では複数の配列要素を削除する方法が多数あり、状況に応じてどの方法を使用するかを選択できます。この記事では、unset ループと foreach ループの使用、array_diff_key() 関数の使用、array_filter() 関数の使用という 3 つの一般的な方法を紹介します。

これらのメソッドは、複数の配列要素を削除する問題をうまく解決できます。ただし、unset() 関数を使用すると、配列キーの順序が変更される可能性があることに注意してください。キーの順序を維持する必要がある場合は、他のメソッドを使用する必要があります。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!