PHPで値が2次元配列にあるかどうかを判断する方法
インターネットの継続的な発展に伴い、Web サイトの開発はますます一般的になりました。 PHP は非常に人気のある開発言語であり、多くの Web サイトが PHP を使用して開発されています。 PHP 開発では、一定量のデータを簡単に保存および検索できる 2 次元配列がよく使用されます。この記事では、PHP で値が 2 次元配列にあるかどうかを判断する方法を紹介します。
まず、2 次元配列の概念を理解する必要があります。簡単に言えば、2 次元配列は、各要素も配列である配列です。各サブ配列には対応するキー値があり、これらのサブ配列には 2 次元配列のキーを介してアクセスできます。たとえば、次は単純な 2 次元配列です。
$people = array( array( "name" => "John", "age" => 25, "gender" => "male" ), array( "name" => "Jane", "age" => 30, "gender" => "female" ), array( "name" => "Bob", "age" => 20, "gender" => "male" ) );
上記の 2 次元配列は 3 人の人物の情報を表し、各人物はサブ配列に格納されます。各サブ配列には 3 つのキー値があります。name
は名前を表し、age
は年齢を表し、gender
は性別を表します。さて、この配列に人が含まれているかどうかを判断したいのですが、どうすればよいでしょうか?
簡単な方法は、foreach
ループを使用してこの配列を反復処理することです。各サブ配列について、そのキー値が探している値と一致するかどうかを 1 つずつチェックできます。コードは次のようになります。
function in_array_2d($needle, $haystack) { foreach ($haystack as $item) { foreach ($item as $key => $value) { if ($value == $needle) { return true; } } } return false; } $person = array( "name" => "Jane", "age" => 30, "gender" => "female" ); if (in_array_2d("male", $people)) { echo "The array contains a male person."; } else { echo "The array does not contain a male person."; } if (in_array_2d($person, $people)) { echo "The array contains the person Jane."; } else { echo "The array does not contain the person Jane."; }
上記のコードは、検索する値と検索する 2 次元配列の 2 つのパラメーターを受け入れる in_array_2d
関数を定義します。関数内には 2 つの foreach
ループがネストされており、すべてのサブ配列内のキー値を走査するために使用されます。一致する値が見つかった場合、関数は true
を返し、それ以外の場合は false
を返します。 2 番目の例では、探している人物に関する情報を表すために連想配列を使用していることに注意してください。
上記の実装は非常に単純ですが、あまり効率的ではありません。探している 2 次元配列が大きい場合、配列全体を走査すると非常に時間がかかることがあります。したがって、より効率的な方法が必要です。
より良い方法は、PHP の array_column
関数を使用することです。この関数は、配列内の指定された要素またはキーと値のペアを返すことができます。たとえば、上記の 2D 配列からすべての人の名前を取得したい場合は、次のコードを使用できます:
$names = array_column($people, "name"); print_r($names);
これにより、次のように出力されます:
Array ( [0] => John [1] => Jane [2] => Bob )
さて、返された配列内で探している値を検索することで、それが 2 次元配列内にあるかどうかを判断できます。実装コードは次のとおりです。
function in_array_2d($needle, $haystack) { $values = array_column($haystack, null, 0); return in_array($needle, $values); } $person = array( "name" => "Jane", "age" => 30, "gender" => "female" ); if (in_array_2d("male", $people)) { echo "The array contains a male person."; } else { echo "The array does not contain a male person."; } if (in_array_2d($person, $people)) { echo "The array contains the person Jane."; } else { echo "The array does not contain the person Jane."; }
上記のコードは in_array_2d
関数を実装していますが、少し複雑です。まず、array_column
関数を使用して、検索対象の 2 次元配列内のすべての部分配列の最初の要素を取得し、それを新しい配列のキーとして使用します。このように、in_array
関数を使用して、探している値が新しい配列内にあるかどうかを確認できます。 2 番目の例では、探している人物に関する情報を表すために連想配列を使用していることに注意してください。
array_column
関数を使用する利点は、キーを指定することで部分配列内の特定の値を取得できることです。これは、2D 配列から特定の値を含む部分配列を簡単に見つけることができることを意味します。以下に例を示します。
$male = array_column($people, null, "gender")["male"]; print_r($male);
これは、男性の情報を含む部分配列を出力します。
上記の方法は、値が 2 次元配列内にあるかどうかを判断するために使用できますが、効率と可読性は異なります。 foreach
ループはおそらく最も理解しやすいですが、効率は低くなります。 array_column
関数は、大規模な 2 次元配列の場合により効率的ですが、実装にはより多くのコードが必要です。したがって、方法を選択するときは、どの方法がより適切であるかはケースバイケースで決定する必要があります。
以上がPHPで値が2次元配列にあるかどうかを判断する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









この記事では、Webアプリケーションの応答性を高めるために、PHPでの非同期タスクの実行について説明します。 メッセージキュー、非同期フレームワーク(Reactphp、Swoole)、およびバックグラウンドプロセスなどの方法を詳しく説明し、Efficienのベストプラクティスを強調しています

この記事では、RabbitMQとRedisを使用してPHPでメッセージキューを実装する詳細を示します。 それは、それらのアーキテクチャ(AMQP対インメモリ)、機能、および信頼性メカニズム(確認、トランザクション、永続性)を比較します。デザインのベストプラクティス、エラー

この記事では、PSRの推奨事項(PSR-1、PSR-2、PSR-4、PSR-12)に焦点を当てた現在のPHPコーディング基準とベストプラクティスを検証します。 一貫したスタイリング、意味のある命名、EFFを通じてコードの読みやすさと保守性を改善することを強調しています

この記事では、PHPの反射APIについて説明し、クラス、方法、およびプロパティのランタイム検査と操作を可能にします。 一般的なユースケース(ドキュメンテーション生成、ORM、依存関係注入)とパフォーマンスオーバーヘアに対する注意の詳細

この記事では、PHP拡張機能のインストールとトラブルシューティングの詳細で、PECLに焦点を当てています。 インストール手順(検索、ダウンロード/コンパイル、サーバーの再起動、再起動)、トラブルシューティングテクニック(ログのチェック、インストールの確認、

PHP 8のJITコンピレーションは、頻繁に実行されるコードをマシンコードにコンパイルし、重い計算でアプリケーションに利益をもたらし、実行時間を短縮することにより、パフォーマンスを向上させます。

この記事では、PHPメモリの最適化について説明します。 適切なデータ構造を使用し、不必要なオブジェクトの作成を回避し、効率的なアルゴリズムを採用するなどの手法について詳しく説明しています。 一般的なメモリリークソース(例:除去されていない接続、グローバルv

この記事では、PHPエコシステムに最新の状態を維持するための戦略を探ります。 公式チャンネル、コミュニティフォーラム、会議、オープンソースの貢献を利用することを強調しています。 著者は、新機能と
