値による多次元 PHP 配列の検索
このシナリオでは、多次元配列から特定の値を検索する関数を開発する必要があります。 「slug」キー内の値。以下に検索プロセスの内訳と検討できる解決策を示します。
array_search() と array_column() の使用
array_search() と array_column() の紹介。 array_search() は配列内の値のインデックスを効率的に検索し、array_column() は多次元配列から特定の値を抽出し、抽出された値を含む新しい配列を作成します。これらの関数を使用すると、次のように配列を検索できます。
function search_array($array, $key, $value) { return array_search($value, array_column($array, $key)); }
カスタム再帰関数の使用
あるいは、配列を再帰的に実行し、「スラッグ」値をターゲットと比較しますvalue:
function search_array_recursive($array, $key, $value) { foreach ($array as $subarray) { if (is_array($subarray)) { $found = search_array_recursive($subarray, $key, $value); if ($found !== false) { return $found; } } else if ($subarray[$key] == $value) { return $subarray; } } return false; }
array_walk_recursive() の使用
さらに、array_walk_recursive() を利用して配列を走査し、検索ロジックを各要素に適用できます:
function search_array_walk_recursive($array, $key, $value, &$found) { array_walk_recursive($array, function($subarray) use ($key, $value, &$found) { if (is_array($subarray)) { search_array_walk_recursive($subarray, $key, $value, $found); } else if ($subarray[$key] == $value) { $found = true; } }); }
パフォーマンス考慮事項
array_search() メソッドは、一般に、特に配列サイズが大きい場合、他の手法よりも優れたパフォーマンスを発揮します。ただし、正確な結果を得るにはインデックス付きのサブ配列が必要であるため、配列の構造を考慮することが重要です。
概要
array_search() メソッドと array_column の組み合わせ() は、特定の値で多次元配列を検索するための効率的で読みやすいソリューションを提供します。ただし、インデックスのない部分配列をサポートする必要がある場合は、再帰的メソッドが実行可能な代替手段を提供します。
以上が多次元 PHP 配列の「slug」キー内の値を効率的に検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。