PHP では配列を扱う必要がよくありますが、よくある問題の 1 つは、2 次元配列内の重複値を削除する方法です。この問題を解決するのは難しいことではなく、array_map
、array_unique
、array_filter
など、PHP が提供するいくつかの配列関数を使用できます。次に、2次元配列から重複した値を削除する方法を見てみましょう。
2 次元配列とは何ですか?
2 次元配列とは、配列内の要素も配列であることを意味し、行列として表現できます。 PHP では、次のメソッドを使用して 2 次元配列を作成できます。
$students = array( array('name' => '张三', 'age' => 18), array('name' => '李四', 'age' => 20), array('name' => '王五', 'age' => 22), array('name' => '赵六', 'age' => 18) );
上記のコードでは、$students
配列を作成します。ここで、各要素は配列でもあり、次の内容が含まれます。 name
と age
は 2 つのキーと値のペアです。この配列は、学生情報のテーブルとして理解できます。
重複値を削除する方法
次に、2 次元配列から重複値を削除するいくつかの方法を紹介します。
方法 1: foreach ループを使用する
function remove_duplicate_by_foreach($arr){ $result = array();//定义一个新数组,用来存放去重后的数据 foreach($arr as $key => $value){ $flag = false; foreach($result as $val){ if($value == $val){ $flag = true; break; } } if(!$flag){ //如果数据不重复,则将其添加到新数组中 array_push($result, $value); } } return $result; } $students = array( array('name' => '张三', 'age' => 18), array('name' => '李四', 'age' => 20), array('name' => '王五', 'age' => 22), array('name' => '赵六', 'age' => 18), array('name' => '张三', 'age' => 18) ); print_r(remove_duplicate_by_foreach($students));
上記のコードでは、最初に空の $result
配列を定義し、次に 2 つの foreach ループを使用して元の配列 $arr
を要素ごとに走査します。 it$value
は、$result
配列内で同じ要素を検索します。見つからない場合は、その要素を $result
配列に追加します。
この方法は比較的シンプルで理解しやすいですが、効率は比較的低く、特にデータが多い場合、走査時間が非常に長くなります。
方法 2: array_map 関数と array_unique 関数を使用する
function remove_duplicate_by_array_map($arr){ $temp = array_map("serialize", $arr);//将数组中的每个元素都序列化 $result = array_unique($temp);//去重操作 $new_array = array(); foreach ($result as $value) {//反序列化操作 array_push($new_array, unserialize($value)); } return $new_array; } $students = array( array('name' => '张三', 'age' => 18), array('name' => '李四', 'age' => 20), array('name' => '王五', 'age' => 22), array('name' => '赵六', 'age' => 18), array('name' => '张三', 'age' => 18) ); print_r(remove_duplicate_by_array_map($students));
上記のコードでは、まず array_map
関数を使用して、元の配列 $arr## を変換します。 # 各要素は文字列にシリアル化され、
array_unique 関数を使用してシリアル化された文字列の重複が除去され、最後に foreach ループを使用して通常の配列要素に逆シリアル化されます。
function remove_duplicate_by_array_filter($arr){
$unique_arr = array_unique(array_map('serialize',$arr));//先将数组序列化再去重
return array_filter($unique_arr, function($var){//回调函数进行反序列化
return unserialize($var);
});
}
$students = array(
array('name' => '张三', 'age' => 18),
array('name' => '李四', 'age' => 20),
array('name' => '王五', 'age' => 22),
array('name' => '赵六', 'age' => 18),
array('name' => '张三', 'age' => 18)
);
print_r(remove_duplicate_by_array_filter($students));
上記のコードでは、まず array_map 関数を使用して、元の配列
$arr の各要素をフィルターします。 要素はすべて文字列にシリアル化され、その後、
array_unique 関数を使用してシリアル化された文字列の重複が排除され、最後に
array_filter 関数を使用して逆シリアル化操作が実装されます。
array_map、
array_unique を使用できます。 、
Array_filter などの関数が実装されています。より効率的な処理結果を得るには、必要に応じてさまざまな方法を選択してください。
以上がPHPで2次元配列から重複した値を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、酸とベースのデータベースモデルを比較し、その特性と適切なユースケースを詳述しています。酸は、財務およびeコマースアプリケーションに適したデータの整合性と一貫性を優先し、ベースは可用性に焦点を当て、

この記事では、コードインジェクションのような脆弱性を防ぐために、PHPファイルのアップロードを確保することについて説明します。ファイルタイプの検証、セキュアストレージ、およびアプリケーションセキュリティを強化するエラー処理に焦点を当てています。

記事では、組み込み関数、ホワイトリストアプローチ、サーバー側の検証などの手法に焦点を当てたセキュリティを強化するためのPHP入力検証のベストプラクティスについて説明します。

この記事では、Token BucketやLeaky BucketなどのアルゴリズムやSymfony/Rate-Limiterなどのライブラリを使用するなど、PHPでAPIレート制限を実装するための戦略について説明します。また、監視、動的に調整されたレートの制限、および手をカバーします

この記事では、パスワードを保護するためにPHPでpassword_hashとpassword_verifyを使用することの利点について説明します。主な議論は、これらの関数が自動塩の生成、強力なハッシュアルゴリズム、およびSecurを通じてパスワード保護を強化するということです

この記事では、PHPおよび緩和戦略におけるOWASPトップ10の脆弱性について説明します。重要な問題には、PHPアプリケーションを監視および保護するための推奨ツールを備えたインジェクション、認証の壊れ、XSSが含まれます。

この記事では、PHPでのXSS攻撃を防ぐための戦略について説明し、入力の消毒、出力エンコード、セキュリティを向上させるライブラリとフレームワークの使用に焦点を当てています。

この記事では、PHPでのインターフェイスと抽象クラスの使用について説明し、それぞれをいつ使用するかに焦点を当てています。インターフェイスは、無関係なクラスや複数の継承に適した、実装なしで契約を定義します。抽象クラスは共通の機能を提供します


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 中国語版
中国語版、とても使いやすい

WebStorm Mac版
便利なJavaScript開発ツール

ホットトピック









