PHP Arrays

লেসন ১২ / ৩৯

Indexed Array

// ৩ ভাবে তৈরি
$fruits = ["আম", "জাম", "লিচু"];
$fruits = array("আম", "জাম", "লিচু");
$fruits[] = "কাঁঠাল";    // শেষে যোগ

// Access
echo $fruits[0];   // আম
echo count($fruits);  // 4

// Loop
foreach ($fruits as $fruit) {
    echo $fruit;
}

Associative Array (key-value)

$user = [
    "name" => "করিম",
    "age" => 25,
    "email" => "karim@example.com",
    "is_active" => true
];

echo $user["name"];       // করিম

// যোগ/পরিবর্তন
$user["phone"] = "01712345678";
$user["age"] = 26;

// Exists?
if (isset($user["email"])) { ... }
if (array_key_exists("email", $user)) { ... }

// Delete
unset($user["phone"]);

// Loop
foreach ($user as $key => $value) {
    echo "$key: $value\n";
}

Multi-dimensional Array

$students = [
    [
        "name" => "করিম",
        "marks" => [80, 90, 85]
    ],
    [
        "name" => "রহিম",
        "marks" => [70, 75, 80]
    ]
];

echo $students[0]["name"];              // করিম
echo $students[0]["marks"][1];          // 90

foreach ($students as $student) {
    echo $student["name"] . ": ";
    echo array_sum($student["marks"]) . "\n";
}

গুরুত্বপূর্ণ Array Functions

$arr = [3, 1, 4, 1, 5, 9, 2, 6];

count($arr)              // 8
array_sum($arr)          // 31
min($arr)                // 1
max($arr)                // 9
array_unique($arr)       // ডুপ্লিকেট সরায়
sort($arr);               // ascending (by ref)
rsort($arr);              // descending
array_reverse($arr)      // উল্টো

in_array(5, $arr)        // true
array_search(5, $arr)    // index

array_push($arr, 7)      // শেষে যোগ (multi)
array_pop($arr)          // শেষেরটা
array_shift($arr)        // প্রথমটা
array_unshift($arr, 0)   // শুরুতে যোগ

array_slice($arr, 1, 3)  // অংশ
array_merge($a, $b)      // মিলানো
array_combine($keys, $values)

// Map/Filter/Reduce ⭐
$doubled = array_map(fn($n) => $n * 2, $arr);
$evens = array_filter($arr, fn($n) => $n % 2 == 0);
$sum = array_reduce($arr, fn($carry, $n) => $carry + $n, 0);

// Key-value
array_keys($user)         // ["name", "age", ...]
array_values($user)       // ["করিম", 25, ...]
array_flip($user)         // key ↔ value

// Sort
sort($arr);                // values, reindex
asort($user);              // values, keep keys
ksort($user);              // by keys
usort($arr, fn($a,$b) => $a-$b);  // custom

Spread Operator (PHP 7.4+)

$a = [1, 2, 3];
$b = [4, 5, 6];
$c = [...$a, ...$b];   // [1,2,3,4,5,6]

function sum(...$nums) {
    return array_sum($nums);
}
echo sum(1, 2, 3, 4);  // 10

Destructuring

[$a, $b, $c] = [1, 2, 3];
// $a=1, $b=2, $c=3

// Associative
["name" => $name, "age" => $age] = $user;

// foreach-এ
foreach ($users as ["name" => $name, "age" => $age]) {
    echo "$name: $age\n";
}