ホームページ >バックエンド開発 >PHPの問題 >PHPは配列のキー値を削除します

PHPは配列のキー値を削除します

PHPz
PHPzオリジナル
2023-05-22 20:45:36436ブラウズ

PHP は非常に人気のある Web 開発言語であり、配列は PHP で最も一般的に使用されるデータ構造の 1 つです。配列を操作する場合、配列内の 1 つ以上のキーを削除し、残りのキーを再配置してインデックスを再作成する必要がある場合があります。この記事では、PHPで配列のキー値を削除する方法を紹介します。

  1. unset() 関数

PHP の unset() 関数を使用すると、配列キー値を含む 1 つ以上の変数を削除できます。配列内のキー値のみを削除した場合、そのキー値が存在する要素は削除され、他の要素のキー値は再インデックスされません。

以下はサンプル コードです:

<?php
$fruits = array("apple", "banana", "cherry");
unset($fruits[1]);  // 删除键值为 1 的元素(即 banana)
print_r($fruits);   // 输出: Array ( [0] => apple [2] => cherry )
?>

$fruits 配列には 3 つの要素があり、そのキー値はそれぞれ 0、1、2 です。 unset() 関数を使用してキー値 1 の要素 (つまり「バナナ」) を削除すると、出力にはキー値 0 と 2 を持つ 2 つの要素のみが含まれます。

複数のキー値を削除する場合は、コンマを使用してキー値を区切るか、キー値を値として配列に入力します。

以下はサンプル コードです:

<?php
$fruits = array("apple", "banana", "cherry", "durian");
unset($fruits[1], $fruits[3]);  // 删除键值为 1 和 3 的元素(即 banana 和 durian)
print_r($fruits);               // 输出: Array ( [0] => apple [2] => cherry )
 
unset($fruits[0], $fruits[2]);  // 删除键值为 0 和 2 的元素(即 apple 和 cherry)
print_r($fruits);               // 输出: Array ( )
 
$fruits = array("apple", "banana", "cherry", "durian");
unset($fruits[1], $fruits[3]);  // 删除键值为 1 和 3 的元素(即 banana 和 durian)
print_r(array_values($fruits)); // 输出: Array ( [0] => apple [1] => cherry )
?>

$fruits 配列には 4 つの要素があり、それらのキー値はそれぞれ 0、1、2、3 です。 unset() 関数を使用してキー値 1 と 3 を持つ要素をそれぞれ削除した後、出力結果にはキー値 0 と 2 を持つ要素が 2 つだけ存在します。

残りの要素のインデックスを再作成する場合は、array_values() 関数を使用できます。この関数は、すべてのキー値を順番に含む新しい配列を返します。

  1. array_splice() 関数

PHP の array_splice() 関数を使用すると、配列内の 1 つ以上の要素を削除し、残りの要素のインデックスを再作成できます。この関数の最初のパラメータは操作対象の配列、2 番目のパラメータは要素の削除を開始する位置、3 番目のパラメータは削除する要素の数、4 番目のパラメータは挿入するオプションの新しい要素です。

以下はサンプル コードです:

<?php
$fruits = array("apple", "banana", "cherry", "durian");
array_splice($fruits, 1, 2);  // 从位置 1 开始删除 2 个元素(即 banana 和 cherry)
print_r($fruits);            // 输出: Array ( [0] => apple [1] => durian )
?>

$fruits 配列には 4 つの要素があり、それらのキー値はそれぞれ 0、1、2、3 です。 array_splice() 関数を使用して位置 1 から始まる 2 つの要素 (つまり、「バナナ」と「チェリー」) を削除すると、出力にはキー値 0 と 1 を持つ 2 つの要素のみが含まれます。

残りの要素のインデックスを再作成したい場合は、要素を削除する前に array_values() 関数を使用できます。

  1. array_filter() 関数

PHP の array_filter() 関数を使用すると、配列内の要素をフィルタリングし、新しい配列 (デフォルトでは元の配列) を返すことができます。変更されません)。この関数の最初のパラメータはフィルタリングする配列で、2 番目のパラメータは各要素をテストして true または false を返すオプションのコールバック関数です。

以下はサンプル コードです:

<?php
$fruits = array("apple", "banana", "cherry", "durian");
$fruits = array_filter($fruits, function($value, $key) {
    return $key != 1 && $key != 2;  // 删除键值为 1 和 2 的元素(即 banana 和 cherry)
}, ARRAY_FILTER_USE_BOTH);
print_r($fruits);  // 输出: Array ( [0] => apple [3] => durian )
?>

$fruits 配列には 4 つの要素があり、それらのキー値はそれぞれ 0、1、2、3 です。 array_filter() 関数とコールバック関数を使用してキー値 1 と 2 を持つ要素を削除した後、出力にはキー値 0 と 3 を持つ 2 つの要素のみが含まれます。

残りの要素のインデックスを再作成する場合は、array_filter() 関数を使用した後に array_values() 関数を使用できます。

まとめ

以上はPHPで配列のキー値を削除する3つの方法です。状況に応じて適切な方法を選択すると、コードの効率と読みやすさが向上します。注: unset() 関数または array_splice() 関数を使用すると、削除されたキー値は配列内に存在しなくなりますが、array_filter() 関数を使用すると、配列のインデックスが再作成されます。

以上がPHPは配列のキー値を削除しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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