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।
array_push/unshift
array_pop/shift
in_array/search
array_merge
array_slice
array_splice
array_keys/values
10Functions इस chapter में
pushEnd में add
popEnd से remove
spliceMiddle में insert/remove
📋 इस Article में क्या-क्या है
- array_push() — End में Add
- array_unshift() — Start में Add
- array_pop() — End से Remove
- array_shift() — Start से Remove
- in_array() — Value Check
- array_search() — Key ढूँढना
- array_merge() — Arrays जोड़ना
- array_slice() — हिस्सा निकालना
- array_splice() — Insert/Remove
- array_keys() & array_values()
1
array_push() — End में Elements Add करना
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 करना
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 करना
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 करना
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";
}
?>
| Function | Position | Operation | Data Structure |
|---|---|---|---|
| array_push() | End | Add | Stack / Queue |
| array_pop() | End | Remove | Stack (LIFO) |
| array_unshift() | Start | Add | Queue |
| array_shift() | Start | Remove | Queue (FIFO) |
5
in_array() — Value Exist करती है?
bool in_array( mixed $needle, array $haystack, bool $strict = false )
in_array() — EXAMPLES
<?php$fruits = ["Apple", "Mango", "Banana"];
// Basic check
var_dump(in_array("Mango", $fruits)); // true
var_dump(in_array("Grapes", $fruits)); // false
var_dump(in_array("mango", $fruits)); // false (case sensitive!)
// Strict mode — type भी check होता है
$nums = [1, 2, 3];
var_dump(in_array("1", $nums)); // true (loose — "1" == 1)
var_dump(in_array("1", $nums, true)); // false (strict — string !== int)
var_dump(in_array(1, $nums, true)); // true (int === int)
?>
in_array() — REAL WORLD EXAMPLES
<?php// 1. File upload validation
$allowedTypes = ["jpg", "jpeg", "png", "gif", "webp"];
$uploadExt = strtolower(pathinfo($_FILES["file"]["name"], PATHINFO_EXTENSION));
if (!in_array($uploadExt, $allowedTypes)) {
echo "❌ Invalid file type!";
}
// 2. Role-based access
$adminRoles = ["admin", "superadmin", "moderator"];
$userRole = "moderator";
if (in_array($userRole, $adminRoles)) {
echo "✅ Admin panel access";
}
// 3. Blacklist check
$bannedWords = ["spam", "hack", "virus"];
$userInput = strtolower($_POST["comment"] ?? "");
foreach ($bannedWords as $word) {
if (str_contains($userInput, $word)) {
echo "❌ Inappropriate content";
}
}
?>
6
array_search() — Value की Key ढूँढना
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 को जोड़ना
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"] ✅
$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!
$b = [0 => "y"];
$a + $b;
// [0=>"x"] — $a के keys win!
8
array_slice() — Array का हिस्सा निकालना
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 एक साथ
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()
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
| Function | Position | Action | Returns |
|---|---|---|---|
| array_push() | End | Add elements | int (new count) |
| array_unshift() | Start | Add elements, re-index | int (new count) |
| array_pop() | End | Remove & return last | removed element |
| array_shift() | Start | Remove & return first | removed element |
| in_array() | Any | Value exist check | bool |
| array_search() | Any | Value की key find | key|false |
| array_merge() | All | Arrays combine | new array |
| array_slice() | Range | Extract portion (read) | new array |
| array_splice() | Range | Remove/insert (write) | removed elements |
| array_keys() | All | All keys extract | array of keys |
| array_values() | All | Re-index / all values | 0-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।