Bird
Raised Fist0
PHPprogramming~10 mins

Array search functions in PHP - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Array search functions
Start with array and search value
↓
Choose search function
↓
Function checks each element
↓
Match found
↓
Return key/index
↓
End
The search function checks each element in the array for a match and returns the key/index if found, otherwise returns false.
Execution Sample
PHP
<?php
$array = ["apple", "banana", "cherry"];
$search = array_search("banana", $array);
echo $search;
?>
This code searches for "banana" in the array and prints its index.
Execution Table
StepArray ElementSearch ValueMatch?ActionReturn Value
1"apple""banana"NoCheck next elementN/A
2"banana""banana"YesReturn index 11
3N/AN/AN/AStop search1
💡 Search stops after finding "banana" at index 1.
Variable Tracker
VariableStartAfter Step 1After Step 2Final
$array["apple", "banana", "cherry"]["apple", "banana", "cherry"]["apple", "banana", "cherry"]["apple", "banana", "cherry"]
$searchnullnull11
Key Moments - 2 Insights
Why does array_search return 1 instead of true?
array_search returns the key/index of the found element, not a boolean. See execution_table step 2 where it returns index 1.
What happens if the search value is not in the array?
array_search returns false if no match is found, as shown in the exit_note and would continue checking all elements.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the return value at step 2?
Atrue
Bfalse
C1
Dnull
💡 Hint
Check the 'Return Value' column at step 2 in the execution_table.
At which step does the search find a match?
AStep 1
BStep 2
CStep 3
DNo match found
💡 Hint
Look at the 'Match?' column in the execution_table.
If the search value was "orange", what would array_search return?
Afalse
B0
Cnull
D3
💡 Hint
Recall from key_moments that array_search returns false if no match is found.
Concept Snapshot
array_search(value, array) searches for value in array.
Returns the key/index if found.
Returns false if not found.
Checks elements one by one until match or end.
Useful to find position of a value in an array.
Full Transcript
This visual shows how PHP's array_search function works. It starts with an array and a value to find. The function checks each element in order. If it finds the value, it returns the key or index of that element. If it does not find the value, it returns false. In the example, searching for "banana" returns 1 because "banana" is at index 1. The variable $search changes from null to 1 after the match. If the value was not found, $search would be false. This helps you find where a value is in an array.

Practice

(1/5)
1. Which PHP function returns the key of a value in an array if found, or false if not found?
easy
A. in_array
B. array_search
C. array_key_exists
D. array_keys

Solution

  1. Step 1: Understand function purpose

    array_search looks for a value and returns its key if found.
  2. Step 2: Compare with other functions

    in_array returns true/false, not key; array_key_exists checks keys; array_keys returns all keys.
  3. Final Answer:

    array_search -> Option B
  4. Quick Check:

    Key returned by array_search = array_search [OK]
Hint: array_search returns key, in_array returns true/false [OK]
Common Mistakes:
  • Confusing array_search with in_array
  • Thinking array_key_exists returns value
  • Assuming array_keys searches values
2. Which of the following is the correct syntax to check if the value 5 exists in array $arr using in_array?
easy
A. in_array(5, $arr);
B. in_array($arr, 5);
C. in_array($arr => 5);
D. in_array(5 => $arr);

Solution

  1. Step 1: Recall in_array syntax

    The correct syntax is in_array(value, array).
  2. Step 2: Match syntax with options

    in_array(5, $arr); matches in_array(5, $arr); which is correct.
  3. Final Answer:

    in_array(5, $arr); -> Option A
  4. Quick Check:

    in_array(value, array) = in_array(5, $arr) [OK]
Hint: Remember in_array(value, array) order [OK]
Common Mistakes:
  • Swapping parameters order
  • Using arrow syntax instead of comma
  • Passing array as first argument
3. What is the output of the following PHP code?
$arr = ['apple', 'banana', 'cherry'];
$key = array_search('banana', $arr);
echo $key;
medium
A. 0
B. banana
C. false
D. 1

Solution

  1. Step 1: Understand array_search behavior

    It returns the key of the searched value if found.
  2. Step 2: Check array keys and searched value

    Array keys are 0=>'apple', 1=>'banana', 2=>'cherry'. Searching 'banana' returns key 1.
  3. Final Answer:

    1 -> Option D
  4. Quick Check:

    array_search('banana', $arr) = 1 [OK]
Hint: array_search returns index/key of found value [OK]
Common Mistakes:
  • Expecting value instead of key
  • Confusing false with 0
  • Assuming it returns boolean
4. Identify the error in the following PHP code snippet:
$arr = ['x' => 10, 'y' => 20];
if (array_search(30, $arr)) {
    echo 'Found';
} else {
    echo 'Not Found';
}
medium
A. array_search returns false but condition treats 0 as false
B. array_search returns key but 30 is not in array, so condition fails correctly
C. array_search should be replaced with in_array for this check
D. No error, code works as expected

Solution

  1. Step 1: Analyze array_search return and condition

    array_search returns key or false. If key is 0, condition fails because 0 is falsey.
  2. Step 2: Check searched value presence

    30 is not in array, so array_search returns false, condition is false, prints 'Not Found'. But if value was at key 0, condition would fail incorrectly.
  3. Step 3: Suggest correct function for boolean check

    Use in_array which returns true/false directly for presence check.
  4. Final Answer:

    array_search should be replaced with in_array for this check -> Option C
  5. Quick Check:

    Use in_array for boolean presence check [OK]
Hint: Use in_array for true/false presence checks [OK]
Common Mistakes:
  • Using array_search in if without strict check
  • Ignoring 0 key treated as false
  • Not using === to check false
5. Given the array $data = ['a' => 0, 'b' => false, 'c' => null, 'd' => '0'];, which function call correctly checks if the value 0 exists in the array considering type?
hard
A. in_array(0, $data, true);
B. array_search(0, $data);
C. in_array(0, $data);
D. array_search('0', $data, true);

Solution

  1. Step 1: Understand strict checking

    Using third parameter true enforces type checking in in_array and array_search.
  2. Step 2: Analyze array values and types

    Values are 0 (int), false (bool), null, and '0' (string). Only strict check distinguishes 0 (int) from others.
  3. Step 3: Choose correct function and parameters

    in_array(0, $data, true) returns true only if exact int 0 found. array_search without strict may confuse types.
  4. Final Answer:

    in_array(0, $data, true); -> Option A
  5. Quick Check:

    Use in_array with strict=true for exact type match [OK]
Hint: Use in_array with strict=true to check exact value and type [OK]
Common Mistakes:
  • Ignoring strict parameter causing false positives
  • Using array_search without strict for type-sensitive check
  • Confusing '0' string with 0 integer
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard