PHP Arrays · Chapter 8.1 · Function Deep Dive

PHP Array Functions
Add · Remove · Search · Merge · Slice

10 सबसे ज़रूरी Array Functions की पूरी जानकारी — array_push, array_pop, array_shift, array_unshift, in_array, array_search, array_merge, array_slice, array_splice, array_keys/values।

➕ Add Functions ➖ Remove Functions 🔍 Search Functions 🔗 Merge & Slice ⏱️ 10 min read
10Functions इस chapter में
pushEnd में add
popEnd से remove
spliceMiddle में insert/remove

📋 इस Article में क्या-क्या है

  1. array_push() — End में Add
  2. array_unshift() — Start में Add
  3. array_pop() — End से Remove
  4. array_shift() — Start से Remove
  5. in_array() — Value Check
  6. array_search() — Key ढूँढना
  7. array_merge() — Arrays जोड़ना
  8. array_slice() — हिस्सा निकालना
  9. array_splice() — Insert/Remove
  10. array_keys() & array_values()
1
array_push() — End में Elements Add करना
push
()

array_push()

Array के end में एक या multiple elements add करता है। $arr[] = "val" का extended version — multiple elements एक साथ add कर सकते हो।

PHP 4+ Returns: int (new count) Modifies original
int array_push( array &$array, mixed ...$values )
[0]
"PHP"
[1]
"MySQL"
[2]
"Laravel"
← Before    After push("Laravel") →
array_push() — EXAMPLES
<?php
$skills = ["PHP", "MySQL"];

// Single element add
array_push($skills, "Laravel");
print_r($skills); // PHP, MySQL, Laravel

// Multiple elements एक साथ
array_push($skills, "HTML", "CSS", "JS");
echo count($skills); // 6

// vs $arr[] — single element के लिए faster
$skills[] = "Git"; // Preferred for single element
?>
array_push() — REAL WORLD: Shopping Cart
<?php
$cart = [];

// User items add करता है
array_push($cart, ["id" => 1, "name" => "PHP Book", "price" => 450]);
array_push($cart, ["id" => 2, "name" => "Laravel Guide", "price" => 799]);

// Cart total
$total = array_reduce($cart, fn($c, $i) => $c + $i["price"], 0);
echo "Cart items: " . count($cart); // 2
echo "Total: ₹" . $total; // ₹1249
?>
💡 array_push vs $arr[]: Single element के लिए $arr[] = "val" faster है (function call overhead नहीं)। Multiple elements के लिए array_push better है: array_push($arr, "a", "b", "c")

2
array_unshift() — Start में Add करना
unsh
ift

array_unshift()

Array के beginning में elements add करता है। सभी existing elements के indices shift होते हैं (0→1, 1→2 etc.)। Priority queue, breadcrumbs के लिए।

PHP 4+ Returns: int (new count) Re-indexes all!
int array_unshift( array &$array, mixed ...$values )
array_unshift() — EXAMPLES
<?php
$nav = ["About", "Services", "Contact"];

// Start में "Home" add करो
array_unshift($nav, "Home");
print_r($nav);
// [0]=>"Home" [1]=>"About" [2]=>"Services" [3]=>"Contact"

// Multiple elements — order maintain होता है
array_unshift($nav, "Logo", "Brand");
// Logo, Brand, Home, About, Services, Contact

// Breadcrumb trail बनाना
$breadcrumb = ["PHP", "Arrays"];
array_unshift($breadcrumb, "Home");
echo implode(" > ", $breadcrumb); // Home > PHP > Arrays
?>
⚠️ Warning: array_unshift() सभी numeric keys को re-index करता है — 0 से फिर start। String keys affect नहीं होतीं। Associative arrays में यह use करते समय सावधान रहो।

3
array_pop() — Last Element Remove करना
pop
()

array_pop()

Array का last element हटाकर return करता है। Stack (LIFO) data structure implement करने के लिए। Undo functionality के लिए।

PHP 4+ Returns: removed element Stack/LIFO
mixed array_pop( array &$array )
array_pop() — EXAMPLES
<?php
$stack = ["Action1", "Action2", "Action3"];

// Last element pop करो
$removed = array_pop($stack);
echo $removed; // Action3 (removed)
print_r($stack); // [Action1, Action2]

// Undo system — Stack (LIFO)
$history = [];
$history[] = "Type 'Hello'";
$history[] = "Bold text";
$history[] = "Save file";

// Ctrl+Z — last action undo
$undone = array_pop($history);
echo "Undone: " . $undone; // Save file

// Empty array पर pop — null return होता है
$empty = [];
var_dump(array_pop($empty)); // NULL
?>

4
array_shift() — First Element Remove करना
shft
()

array_shift()

Array का first element हटाकर return करता है। Queue (FIFO) implement करने के लिए। Task queue, message queue, print queue जैसे systems में।

PHP 4+ Returns: removed element Queue/FIFO
mixed array_shift( array &$array )
array_shift() — FIFO Queue Example
<?php
// Print Queue — FIFO (First In, First Out)
$printQueue = ["Doc1.pdf", "Doc2.pdf", "Doc3.pdf"];

// पहला document print होगा
$printing = array_shift($printQueue);
echo "Printing: " . $printing; // Doc1.pdf
echo "Queue: " . implode(", ", $printQueue); // Doc2.pdf, Doc3.pdf

// Task processing — while loop
$tasks = ["Send Email", "Generate Report", "Backup DB"];
while (!empty($tasks)) {
  $task = array_shift($tasks);
  echo "Processing: $task\n";
}
?>
FunctionPositionOperationData Structure
array_push()EndAddStack / Queue
array_pop()EndRemoveStack (LIFO)
array_unshift()StartAddQueue
array_shift()StartRemoveQueue (FIFO)


6
array_search() — Value की Key ढूँढना
srch
()

array_search()

Value को search करके उसकी key/index return करता है। नहीं मिले तो false। in_array() जैसा लेकिन key return करता है — value नहीं।

PHP 4+ Returns: key|false Strict Mode available
int|string|false array_search( mixed $needle, array $haystack, bool $strict = false )
array_search() — EXAMPLES
<?php
$fruits = ["Apple", "Mango", "Banana", "Orange"];

// Key ढूँढना
echo array_search("Mango", $fruits); // 1
echo array_search("Orange", $fruits); // 3
echo array_search("Grapes", $fruits); // false

// ⚠️ false check — position 0 trap!
$key = array_search("Apple", $fruits); // 0
if ($key !== false) {
  echo "Found at index: $key"; // ✅
}

// Associative array में
$cities = ["IN" => "India", "US" => "USA", "UK" => "England"];
echo array_search("USA", $cities); // "US" (key return होती है)

// Delete by value — search + unset
$key = array_search("Banana", $fruits);
if ($key !== false) unset($fruits[$key]);
?>
⚠️ Trap: array_search() में भी वही === false trap है जो strpos() में था। Value index 0 पर मिले तो if ($key) false मानेगा। हमेशा !== false use करो।

7
array_merge() — Arrays को जोड़ना
merg
e()

array_merge()

दो या ज़्यादा arrays को एक में combine करता है। Numeric keys re-index होती हैं। String keys duplicate होने पर बाद वाली value win करती है।

PHP 4+ Returns: array Non-destructive
array array_merge( array ...$arrays )
array_merge() — EXAMPLES
<?php
// Indexed arrays merge
$arr1 = ["PHP", "MySQL"];
$arr2 = ["HTML", "CSS"];
$merged = array_merge($arr1, $arr2);
print_r($merged); // [PHP, MySQL, HTML, CSS] — 0,1,2,3

// Associative merge — duplicate keys
$defaults = ["color" => "blue", "size" => "medium"];
$custom = ["color" => "red", "font" => "Arial"];
$config = array_merge($defaults, $custom);
print_r($config);
// color=>"red" (custom wins), size=>"medium", font=>"Arial"

// Multiple arrays merge
$all = array_merge($arr1, $arr2, ["JS", "React"]);
echo implode(", ", $all); // PHP, MySQL, HTML, CSS, JS, React
?>

✅ array_merge() — Re-indexes numerics

$a = [0 => "x"];
$b = [0 => "y"];
array_merge($a, $b);
// [0=>"x", 1=>"y"] ✅

ℹ️ + operator — Keys preserve करे

$a = [0 => "x"];
$b = [0 => "y"];
$a + $b;
// [0=>"x"] — $a के keys win!

8
array_slice() — Array का हिस्सा निकालना
slce
()

array_slice()

Array से कोई portion extract करके return करता है। Pagination, top N results, preview — बहुत common use case।

PHP 4+ Returns: array Non-destructive
array array_slice( array $array, int $offset, ?int $length = null, bool $preserve_keys = false )
array_slice() — EXAMPLES
<?php
$arr = ["A", "B", "C", "D", "E", "F"];
// 0 1 2 3 4 5

print_r(array_slice($arr, 2)); // C,D,E,F (2 से end तक)
print_r(array_slice($arr, 1, 3)); // B,C,D (1 से 3 elements)
print_r(array_slice($arr, -3)); // D,E,F (आखिरी 3)
print_r(array_slice($arr, 1, 3, true)); // B,C,D (keys: 1,2,3 preserve)
?>
array_slice() — REAL WORLD: Pagination
<?php
// 50 products में से page 2 के 10 products
$allProducts = range(1, 50); // 1 to 50
$page = 2;
$perPage = 10;
$offset = ($page - 1) * $perPage; // 10
$pageProducts = array_slice($allProducts, $offset, $perPage);
print_r($pageProducts); // [11,12,13,...20]

// Top 3 scorers
$scores = [95, 88, 92, 78, 85, 91];
rsort($scores); // Descending sort
$top3 = array_slice($scores, 0, 3);
print_r($top3); // [95, 92, 91]
?>

9
array_splice() — Remove और Insert एक साथ
splc
e()

array_splice()

Array के middle से elements remove और/या insert करता है। array_slice() से अलग — यह original array modify करता है

PHP 4+ Modifies original! Returns: removed elements
array array_splice( array &$array, int $offset, ?int $length = null, mixed $replacement = [] )
array_splice() — EXAMPLES
<?php
$arr = ["A", "B", "C", "D", "E"];

// Remove 2 elements from index 1
$removed = array_splice($arr, 1, 2);
print_r($removed); // [B, C]
print_r($arr); // [A, D, E]

$arr = ["A", "B", "C", "D"];
// Insert "X","Y" at index 2 (remove 0)
array_splice($arr, 2, 0, ["X", "Y"]);
print_r($arr); // [A, B, X, Y, C, D]

// Replace 1 element at index 1 with "Z"
$arr = ["A", "B", "C"];
array_splice($arr, 1, 1, ["Z"]);
print_r($arr); // [A, Z, C]
?>
💡 array_slice vs array_splice: array_slice() read-only है — original नहीं बदलता, copy return करता है। array_splice() write है — original modify करता है और removed elements return करता है। Middle में insert/delete के लिए splice, read-only के लिए slice।

10
array_keys() & array_values()
keys
vals

array_keys() & array_values()

array_keys() — सभी keys का array। array_values() — सभी values का 0-indexed array। Re-indexing और key extraction के लिए essential।

PHP 4+ Returns: array Re-index tool
array_keys() & array_values() — EXAMPLES
<?php
$user = ["naam" => "Rahul", "umar" => 25, "city" => "Delhi"];

// array_keys — सभी keys
print_r(array_keys($user));
// [0=>"naam", 1=>"umar", 2=>"city"]

// array_values — सभी values (0-indexed)
print_r(array_values($user));
// [0=>"Rahul", 1=>25, 2=>"Delhi"]

// array_keys — specific value की keys
$scores = ["Rahul" => 90, "Priya" => 90, "Amit" => 85];
print_r(array_keys($scores, 90)); // [0=>"Rahul", 1=>"Priya"]

// Re-indexing — unset के बाद
$fruits = ["Apple", "Mango", "Banana"];
unset($fruits[1]); // Gap: [0=>Apple, 2=>Banana]
$fruits = array_values($fruits); // [0=>Apple, 1=>Banana] ✅
?>

Quick Reference — सभी Functions
FunctionPositionActionReturns
array_push()EndAdd elementsint (new count)
array_unshift()StartAdd elements, re-indexint (new count)
array_pop()EndRemove & return lastremoved element
array_shift()StartRemove & return firstremoved element
in_array()AnyValue exist checkbool
array_search()AnyValue की key findkey|false
array_merge()AllArrays combinenew array
array_slice()RangeExtract portion (read)new array
array_splice()RangeRemove/insert (write)removed elements
array_keys()AllAll keys extractarray of keys
array_values()AllRe-index / all values0-indexed array

🏆
Combined Example — Student Management System
COMBINED — सभी functions एक साथ
<?php
$students = ["Rahul", "Priya", "Amit", "Neha"];

// 1. New student add — array_push
array_push($students, "Raj", "Sita");

// 2. Monitor add — array_unshift (पहले)
array_unshift($students, "CR: Deepak");

// 3. Last student remove — array_pop
$left = array_pop($students);
echo "Left class: $left\n"; // Sita

// 4. Priya है? — in_array
if (in_array("Priya", $students)) {
  echo "Priya present ✅\n";
}

// 5. Amit की position — array_search
$pos = array_search("Amit", $students);
echo "Amit is at index: $pos\n";

// 6. Section A + B merge — array_merge
$secA = ["Rahul", "Priya"];
$secB = ["Amit", "Neha"];
$allSec = array_merge($secA, $secB);

// 7. Page 1 ke 3 students — array_slice
$page1 = array_slice($students, 0, 3);
echo implode(", ", $page1);

// 8. Re-index after removal
unset($students[2]);
$students = array_values($students); // 0,1,2... fix
echo "Total: " . count($students);
?>
Pattern: push/unshift (add) → pop/shift (remove) → in_array (check) → search (find) → merge (combine) → slice (paginate) → array_values (re-index)

निष्कर्ष

यह 10 Array Functions PHP का daily toolkit है। हर project में — Shopping carts, User lists, Database results — इन सबमें यही functions use होते हैं।

$arr[] vs array_push — Single element के लिए $arr[], multiple के लिए array_push।

Stack vs Queue — pop+push = Stack (LIFO), shift+push = Queue (FIFO)।

in_array vs array_search — exist? → in_array। key चाहिए → array_search। दोनों में !== false।

slice vs splice — Read करना → slice। Modify करना → splice।

array_values() — unset के बाद हमेशा re-index करो।

🚀 अगला: Chapter 8.2 — array_map, array_filter, array_reduce, array_unique, array_flip — Functional Array Functions।