ホームページ  >  記事  >  PHPフレームワーク  >  thinkphp で配列フィールドを削除する一般的な方法をいくつかまとめます。

thinkphp で配列フィールドを削除する一般的な方法をいくつかまとめます。

PHPz
PHPzオリジナル
2023-04-07 09:28:04676ブラウズ

ThinkPHP では、配列内の指定されたフィールドを削除するのが一般的な操作です。ただし、PHP は動的言語であるため、一部の開発者は一部の配列操作の構文に慣れていない可能性があり、その結果、コードが洗練されておらず効率的ではありません。この記事では、開発者がより簡潔で洗練された効率的なコードを作成できるように、配列フィールドを削除する一般的な方法をいくつか紹介します。

  1. unset() を使用する

PHP の unset() 関数を使用すると、配列内の指定された要素を削除できます。次の例は、unset() 関数を使用して配列内の指定されたフィールドを削除する方法を示しています。

$arr = array('id' => 1, 'name' => 'Tom', 'age' => 20);
unset($arr['age']);
print_r($arr);

コードを実行すると、結果は次のようになります。 unset() 関数が成功しました。配列 $arr の 'age' フィールドが削除されました。

この方法は単純ですが、欠点も明らかです。最初に削除するフィールドのキー名を知っておく必要があり、大きくて深くネストされた配列の場合、これは非常に難しい場合があります。

array_diff_key()
  1. array_diff_key() 関数を使用すると、2 つの配列のキー名を比較し、表示される A キーのすべてのキーを含む新しい配列を返すことができます。ある配列には存在するが、他の配列には存在しない。つまり、2 つの配列のキー名を比較し、最初の配列にのみ現れるキー名を除外します。

次は array_diff_key() 関数の使用例です:

Array
(
    [id] => 1
    [name] => Tom
)

コードを実行すると、結果は次のようになります:

$arr = array('id' => 1, 'name' => 'Tom', 'age' => 20);
$arr2 = array('id' => 1, 'name' => 'Tom');
$newarr = array_diff_key($arr, $arr2);
print_r($newarr);

この例を通して、次のことがわかります。 array_diff_key() 関数を使用すると、配列を直接操作せずに 2 つの配列のキー名を比較し、最初の配列にのみ現れるキー名を見つけて、未使用のキーをすべて含む新しい配列を返すことができます。他の配列でも。

array_filter() の使用
  1. array_diff_key() 関数を使用して配列内の特定のキー名を削除することに加えて、array_filter() 関数も使用できます。この関数は、配列内の要素をフィルタリングし、フィルタリングされた配列を返すために使用されます。 array_filter() 関数の 2 番目のパラメータを使用して、フィルタリングする要素を指定できます。以下は、array_filter() 関数の使用例です。
Array
(
    [age] => 20
)

コードを実行すると、結果は次のようになります。

$arr = array('id' => 1, 'name' => 'Tom', 'age' => 20);
$newarr = array_filter($arr, function($k) {
    return $k !== 'age';
}, ARRAY_FILTER_USE_KEY);
print_r($newarr);

この例を通して、array_filter() 関数を使用することがわかります。 , コールバック関数を指定し、コールバック関数内で要素を判定することができます。判定結果がTRUEの場合は要素を新しい配列に返しますが、それ以外の場合は要素を返しません。この例では、コールバック関数を使用して、配列内のキー名「age」を持つ要素をフィルターで除外します。

array_map() を使用する
  1. 最後の方法は、array_map() 関数を使用することです。 array_map() は、PHP の非常に実用的な配列関数であり、指定された配列の各要素にコールバック関数を適用し、すべての戻り値を含む新しい配列を返すために使用されます。配列内の各値を処理する必要がある場合は、array_map() 関数の使用を検討できます。

次は array_map() 関数の使用例です:

Array
(
    [id] => 1
    [name] => Tom
)

コードを実行すると、結果は次のようになります:

$arr = array('id' => 1, 'name' => 'Tom', 'age' => 20);
$newarr = array_map(function($key) use ($arr) {
    unset($arr[$key]);
    return $arr;
}, array('age'));
print_r($newarr);

この例では、無名関数、それを配列 ['age'] に適用し、unset() 関数を使用してキー名 'age' の要素を配列から削除し、処理された配列を新しい配列に返します。

結論

さまざまな状況に応じて、上記のメソッドを使用して配列内のフィールドを削除できます。固定要素を削除する場合は、unset() 関数を使用できます。指定した一部の要素のみを削除する必要がある場合は、array_diff_key() 関数を使用できます。要素の複雑なフィルタリングとスクリーニングを実行する必要がある場合は、次のことができます。 array_filter() 関数と array_map() 関数を使用します。つまり、実際のニーズに応じて、配列内の指定された要素を削除する適切な方法を選択できます。

以上がthinkphp で配列フィールドを削除する一般的な方法をいくつかまとめます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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