हजारों मानों वाले array में किसी single मान की उपस्थिति जांचने के लिए सबसे कुशल तरीका array_flip() के साथ O(1) लुकअप का उपयोग करना है।
मूल विधि (Single Value Check)
$set = ['value1', 'value2', 'value3', /* ... हजारों मान */];
$value = 'search_value';
if (isset(array_flip($set)[$value])) {
echo "मान मिल गया!";
// कार्रवाई करें
}
कस्टम फंक्शन: Multiple Keys Check
function arrayKeysExist(array $keys, array $arr): bool {
// array_flip keys को lookup के लिए keys बनाता है
// array_diff_key missing keys ढूंढता है
return !array_diff_key(array_flip($keys), $arr);
}
// उपयोग उदाहरण
$haystack = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4];
$needles = ['a', 'c', 'e'];
if (arrayKeysExist($needles, $haystack)) {
echo "सभी keys मौजूद हैं";
} else {
echo "कुछ keys गायब हैं";
}
प्रदर्शन तुलना
| विधि | समय जटिलता | उपयोग का मामला |
|---|---|---|
in_array() | O(n) | छोटे arrays, एकल जांच |
isset($arr[$key]) | O(1) | Key-based lookup |
array_flip() + isset() | O(n) सेटअप, O(1) लुकअप | बड़े arrays में बार-बार value lookup |
array_keys_exist() | O(n + m) | एक साथ multiple keys जांचना |
महत्वपूर्ण टिप्स
- बड़े arrays के लिए
array_flip()एक बार करें, फिर multiple lookups के लिए पुनः उपयोग करें - PHP 8.1+ में
array_is_list()औरarray_any()नए विकल्प प्रदान करते हैं - Memory usage के लिए
array_flip()duplicate values को हटा देता है