ThinkPHP では、配列內(nèi)の指定されたフィールドを削除するのが一般的な操作です。ただし、PHP は動(dòng)的言語(yǔ)であるため、一部の開(kāi)発者は一部の配列操作の構(gòu)文に慣れていない可能性があり、その結(jié)果、コードが洗練されておらず効率的ではありません。この記事では、開(kāi)発者がより簡(jiǎn)潔で洗練された効率的なコードを作成できるように、配列フィールドを削除する一般的な方法をいくつか紹介します。
- unset() を使用する
PHP の unset() 関數(shù)を使用すると、配列內(nèi)の指定された要素を削除できます。次の例は、unset() 関數(shù)を使用して配列內(nèi)の指定されたフィールドを削除する方法を示しています。
$arr?=?array('id'?=>?1,?'name'?=>?'Tom',?'age'?=>?20); unset($arr['age']); print_r($arr);
コードを?qū)g行すると、結(jié)果は次のようになります。 unset() 関數(shù)が成功しました。配列 $arr の 'age' フィールドが削除されました。
この方法は単純ですが、欠點(diǎn)も明らかです。最初に削除するフィールドのキー名を知っておく必要があり、大きくて深くネストされた配列の場(chǎng)合、これは非常に難しい場(chǎng)合があります。
array_diff_key()- array_diff_key() 関數(shù)を使用すると、2 つの配列のキー名を比較し、表示される A キーのすべてのキーを含む新しい配列を返すことができます。ある配列には存在するが、他の配列には存在しない。つまり、2 つの配列のキー名を比較し、最初の配列にのみ現(xiàn)れるキー名を除外します。
次は array_diff_key() 関數(shù)の使用例です:
Array ( ????[id]?=>?1 ????[name]?=>?Tom )
コードを?qū)g行すると、結(jié)果は次のようになります:
$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() 関數(shù)を使用すると、配列を直接操作せずに 2 つの配列のキー名を比較し、最初の配列にのみ現(xiàn)れるキー名を見(jiàn)つけて、未使用のキーをすべて含む新しい配列を返すことができます。他の配列でも。
array_filter() の使用- array_diff_key() 関數(shù)を使用して配列內(nèi)の特定のキー名を削除することに加えて、array_filter() 関數(shù)も使用できます。この関數(shù)は、配列內(nèi)の要素をフィルタリングし、フィルタリングされた配列を返すために使用されます。 array_filter() 関數(shù)の 2 番目のパラメータを使用して、フィルタリングする要素を指定できます。以下は、array_filter() 関數(shù)の使用例です。
Array ( ????[age]?=>?20 )
コードを?qū)g行すると、結(jié)果は次のようになります。
$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() 関數(shù)を使用することがわかります。 , コールバック関數(shù)を指定し、コールバック関數(shù)內(nèi)で要素を判定することができます。判定結(jié)果がTRUEの場(chǎng)合は要素を新しい配列に返しますが、それ以外の場(chǎng)合は要素を返しません。この例では、コールバック関數(shù)を使用して、配列內(nèi)のキー名「age」を持つ要素をフィルターで除外します。
array_map() を使用する- 最後の方法は、array_map() 関數(shù)を使用することです。 array_map() は、PHP の非常に実用的な配列関數(shù)であり、指定された配列の各要素にコールバック関數(shù)を適用し、すべての戻り値を含む新しい配列を返すために使用されます。配列內(nèi)の各値を処理する必要がある場(chǎng)合は、array_map() 関數(shù)の使用を検討できます。
次は array_map() 関數(shù)の使用例です:
Array ( ????[id]?=>?1 ????[name]?=>?Tom )
コードを?qū)g行すると、結(jié)果は次のようになります:
$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);
この例では、無(wú)名関數(shù)、それを配列 ['age'] に適用し、unset() 関數(shù)を使用してキー名 'age' の要素を配列から削除し、処理された配列を新しい配列に返します。
結(jié)論
さまざまな狀況に応じて、上記のメソッドを使用して配列內(nèi)のフィールドを削除できます。固定要素を削除する場(chǎng)合は、unset() 関數(shù)を使用できます。指定した一部の要素のみを削除する必要がある場(chǎng)合は、array_diff_key() 関數(shù)を使用できます。要素の複雑なフィルタリングとスクリーニングを?qū)g行する必要がある場(chǎng)合は、次のことができます。 array_filter() 関數(shù)と array_map() 関數(shù)を使用します。つまり、実際のニーズに応じて、配列內(nèi)の指定された要素を削除する適切な方法を選択できます。
以上がthinkphp で配列フィールドを削除する一般的な方法をいくつかまとめます。の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語(yǔ) Web サイトの他の関連記事を參照してください。

ホットAIツール

Undress AI Tool
脫衣畫(huà)像を無(wú)料で

Undresser.AI Undress
リアルなヌード寫(xiě)真を作成する AI 搭載アプリ

AI Clothes Remover
寫(xiě)真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無(wú)料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版
中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1
強(qiáng)力な PHP 統(tǒng)合開(kāi)発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開(kāi)発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)