← Back to PHP Course | Chapter 7: Arrays | Lesson 12 of 13

PHP Array Searching

किसी array को search करना अपने backpack में देखने जैसा है कि आपकी pencil उसमें है या नहीं। PHP आपको बता सकता है कि कोई value exist करती है या नहीं और यह list में कहाँ बैठती है।
Syntax
php
in_array($value, $array);             // true or false
array_search($value, $array);         // key, or false
array_key_exists($key, $array);

in_array से Values ढूँढना

in_array() check करता है कि कोई दी गई value किसी array में कहीं exist करती है या नहीं और एक simple boolean return करता है, जो 'क्या यह email पहले से registered है?' जैसे yes/no membership question का जवाब देने का सबसे तेज़ तरीका है।

उदाहरण: Finding Values with in_array

php
<?php
// Declare `$emails` as an array: `["[email protected]", "[email protected]"]`
$emails = ["[email protected]", "[email protected]"];
// Print a detailed dump (with types) of `in_array("[email protected]", $emails)`
var_dump(in_array("[email protected]", $emails));
?>

array_search से Keys ढूँढना

array_search() in_array() जैसा ही है लेकिन सिर्फ true/false के बजाय पहले matching element की key return करता है, आपको exactly यह locate करने देते हुए कि कोई value कहाँ रहती है ताकि आप इसे update या remove कर सकें।

उदाहरण: Finding Keys with array_search

php
<?php
// Declare `$fruits` as an array: `["apple", "banana", "cherry"]`
$fruits = ["apple", "banana", "cherry"];
// Declare `$key`, set to `array_search("banana", $fruits)`
$key = array_search("banana", $fruits);
// Print `$key` to the output
echo $key;
?>

Key Existence Check करना

array_key_exists() एक value के बजाय एक key की presence check करता है, जो मायने रखता है क्योंकि एक key null या empty value के साथ exist कर सकती है जिसे in_array() strict comparison settings के आधार पर miss कर देगा।

उदाहरण: Checking Key Existence

php
<?php
// Declare `$data` as an array: `["email" => null]`
$data = ["email" => null];
// Print a detailed dump (with types) of `array_key_exists("email", $data)`
var_dump(array_key_exists("email", $data));
// Print a detailed dump (with types) of `in_array(null, $data, true)`
var_dump(in_array(null, $data, true));
?>

array_keys से Search करना

in_array() और array_search() दोनों एक optional strict parameter accept करते हैं, और true pass करना default loose == के बजाय === comparison force करता है, पुराने PHP versions में 0 == abc जैसे surprising matches से बचते हुए।

उदाहरण: Searching with array_keys

php
<?php
// Declare `$values` as an array: `[0, "abc", false]`
$values = [0, "abc", false];
// Print a detailed dump (with types) of `in_array("abc", $values)`
var_dump(in_array("abc", $values));
// Print a detailed dump (with types) of `in_array("abc", $values, true)`
var_dump(in_array("abc", $values, true));
?>

array_filter का इस्तेमाल करके Advanced Search

Associative arrays के लिए, array_column() को array_search() के साथ combine करना आपको records की एक list में किसी specific field से search करने देता है, जैसे उस user का array index ढूँढना जिसका id किसी दी गई value से match करता है।

उदाहरण: Advanced Search using array_filter

php
<?php
// Declare `$users` as an array: `[["id" => 1, "name" => "Alice"], ["id" => 2, "name" => "Bob"]]`
$users = [["id" => 1, "name" => "Alice"], ["id" => 2, "name" => "Bob"]];
// Declare `$ids`, set to `array_column($users, 'id')`
$ids = array_column($users, 'id');
// Declare `$index`, set to `array_search(2, $ids)`
$index = array_search(2, $ids);
// Print `$index` to the output
echo $index;
?>
Related Topics
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the view already swaps in the hi_ translation fields (or blanks these out if untranslated), so this renders correctly for both languages without a lang_code check here. #}
आम गलतियां
  1. in_array को mixed types पर तीसरे argument true के बिना इस्तेमाल करना, ताकि loose comparison की वजह से in_array("1e1", ["10"]) true हो।
  2. array_search को if (array_search(...)) से test करना, जो false है जब key 0 हो; !== false से compare करें।
  3. एक null value वाली key check करने के लिए isset इस्तेमाल करना, जो false return करता है; इसके बजाय array_key_exists इस्तेमाल करें।

Login to run this code

C/C++/Java/PHP execution requires a free account. Your code is saved — you'll land right back in the editor after logging in.