ホームページ >バックエンド開発 >PHPチュートリアル >PHP 多次元配列内の値を効率的に検索するにはどうすればよいですか?

PHP 多次元配列内の値を効率的に検索するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-20 05:11:13129ブラウズ

How to Efficiently Search for a Value in a PHP Multidimensional Array?

値による PHP 多次元配列の検索

多次元配列を操作する場合、多くの場合、対応する値に基づいて特定のキーを見つけることが必要になります。このタスクは、PHP のさまざまなテクニックを使用して実行できます。

オプション 1: array_search() と array_column() を使用する

このアプローチを利用するには、PHP を使用していることを確認する必要があります。バージョン 5.5.0 または

$key = array_search('breville-one-touch-tea-maker-BTM800XL', array_column($products, 'slug'));

説明:

  • array_column() は、配列からキーの列を抽出します。この場合、「slug」値を新しい配列に取得します。
  • array_search() は、によって返された配列内で目的の値 ('breville-one-touch-tea-maker-BTM800XL') を検索します。 array_column()、一致するキーが見つかった場合はそれを提供します。

オプション 2: カスタム関数array_walk_recursive()

function array_search_multidim($array, $column, $key) {
    $result = null;
    array_walk_recursive($array, function ($value, $index) use ($column, $key, &$result) {
        if ($index === $column && $value === $key) {
            $result = $index;
        }
    });
    return $result;
}
$key = array_search_multidim($products, 'slug', 'breville-one-touch-tea-maker-BTM800XL');

説明:

  • array_walk_recursive() は、ネストされたレベル内の要素を含む、配列のすべての要素を反復処理します。
  • クロージャー関数は、指定された列に対して各値のインデックス ($index) をチェックします。 ($column) を作成し、その値 ($value) を目的のキー ($key) と比較します。
  • 一致するものが見つかった場合、一致する要素のインデックス ($index) を $result 変数に割り当てます。 .

パフォーマンスに関する考慮事項

array_search() および array_column() アプローチは、一般にパフォーマンスが向上します。 array_walk_recursive() メソッドと比較します。ただし、どちらの手法もほとんどのアプリケーションに適しており、具体的な選択は個々の要件によって異なります。

追加メモ

  • これらの手法では、キーがキーと同じレベルに存在する必要があります。
  • 完全に一致する値を検索します。部分一致はサポートされていません。

以上がPHP 多次元配列内の値を効率的に検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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