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

PHP 多次元配列内のキーをその値によって効率的に見つけるにはどうすればよいですか?

Dec 09, 2024 pm 08:59 PM

How to Efficiently Find a Key in a PHP Multidimensional Array by its Value?

PHP 多次元配列検索 (値によるキーの検索)

このシナリオでは、製品のコレクションを表す多次元配列があります。各製品は、名前、スラッグ、価格などのプロパティによって定義されます。目標は、スラッグ プロパティを使用して配列で特定の製品を検索し、配列内の対応するキーを返す方法を見つけることです。

これを実現する 1 つの方法は、array_search 関数と array_column 関数を利用することです。このアプローチをカプセル化するカスタム関数を次に示します。

function array_search_multidim(array $array, string $column, string $key)
{
    return array_search($key, array_column($array, $column));
}
ログイン後にコピー

この関数を使用するには、次のように呼び出します。

$product_key = array_search_multidim($products, 'slug', 'breville-one-touch-tea-maker-BTM800XL');
ログイン後にコピー

これは、$products 配列で製品を検索します。 「breville-one-touch-tea-maker-BTM800XL」に等しい slug プロパティを取得し、対応するキーを返します。この例では、値 1 が返されます。

もう 1 つの可能な解決策は、array_search 関数に基づくものです。このアプローチでは、PHP 5.5.0 以降を使用する必要があります。

$key = array_search('breville-one-touch-tea-maker-BTM800XL', array_column($products, 'slug'));
ログイン後にコピー

このコードは、前の例と同じ結果を達成します。

array_walk_recursive を使用する 3 番目の方法もあります。配列のすべての要素を再帰的に調べて、スラッグの値を指定された値と比較します。 value:

function array_walk_recursive_search($input, $needle, &$result = null)
{
    if (is_array($input)) {
        foreach ($input as $key => $value) {
            array_walk_recursive_search($value, $needle, $result);
        }
    } else {
        if ($input === $needle) {
            $result = $key;
        }
    }
}
ログイン後にコピー

この関数は次のように呼び出すことができます:

array_walk_recursive($products, 'breville-one-touch-tea-maker-BTM800XL', $product_key);
ログイン後にコピー

array_walk_recursive メソッドはより一般的で、あらゆるタイプの配列構造を処理できることに注意することが重要です。一般に、他の方法よりも遅いです。

全体的に、使用する最適な方法は、特定のニーズと制約によって異なります。あなたのアプリケーション。ただし、最も効率的な 2 つの方法は、array_search 関数と array_column 関数を利用する方法です。

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

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

11ベストPHP URLショートナースクリプト(無料およびプレミアム) 11ベストPHP URLショートナースクリプト(無料およびプレミアム) Mar 03, 2025 am 10:49 AM

11ベストPHP URLショートナースクリプト(無料およびプレミアム)

Instagram APIの紹介 Instagram APIの紹介 Mar 02, 2025 am 09:32 AM

Instagram APIの紹介

Laravelでフラッシュセッションデータを使用します Laravelでフラッシュセッションデータを使用します Mar 12, 2025 pm 05:08 PM

Laravelでフラッシュセッションデータを使用します

LaravelのバックエンドでReactアプリを構築する:パート2、React LaravelのバックエンドでReactアプリを構築する:パート2、React Mar 04, 2025 am 09:33 AM

LaravelのバックエンドでReactアプリを構築する:パート2、React

Laravelテストでの簡略化されたHTTP応答のモッキング Laravelテストでの簡略化されたHTTP応答のモッキング Mar 12, 2025 pm 05:09 PM

Laravelテストでの簡略化されたHTTP応答のモッキング

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPのカール:REST APIでPHPカール拡張機能を使用する方法

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

Codecanyonで12の最高のPHPチャットスクリプト

2025 PHP状況調査の発表 2025 PHP状況調査の発表 Mar 03, 2025 pm 04:20 PM

2025 PHP状況調査の発表

See all articles