Mảng trong PHP - PHP Array

Mảng Là Gì

Mảng là kiểu dữ liệu cho phép chúng ta lưu trữ nhiều giá trị trong nó bao gồm việc lưu trữ giá trị của một hoặc nhiều mảng khác.

Mảng Trong PHP

Mảng trong PHP được chia thành 3 loại khác nhau đó là:

  • Mảng đánh số thứ tự (indexed array)
  • Mảng kết hợp (associative array)
  • Mảng đa chiều (multidimensional array)

Cả 3 loại trên đều có chung một cú pháp khi tạo mảng.

Cú Pháp Tạo Mảng

Để tạo mảng trong PHP chúng ta có thể sử dụng cú pháp:

array()

Với các phiên bản PHP từ 5.4 trở về sau chúng ta có thể sử dụng cú pháp ngắn gọn hơn như sau:

[]

Ví dụ:

$top_car_brands = array("Toyota", "Honda", "BMW", "Ford", "Hyundai");
$top_car_brands =["Toyota", "Honda", "BMW", "Ford", "Hyundai"];

Cú Pháp Tạo Mảng trong PHP

Đếm Số Phần Tử Trong Mảng

Để đếm số lượng phần tử trong một mảng PHP chúng ta sử dụng hàm count():

<?php
$top_car_brands =["Toyota", "Honda", "BMW", "Ford", "Hyundai"];
echo count($top_car_brands);
?>

Đếm Số Phần Tử Trong Mảng

Mảng Đánh Số Thứ Tự - Indexed Array

Mảng đánh số thứ tự (indexed array) trong PHP là loại mảng mà các phần tử được đánh số thứ tự là các số tự nhiên:

Mảng dưới đây là một mảng đánh số thứ tự với các khoá là các số tự nhiên liên tiếp bắt đầu từ 0:

<?php 
$top_car_brands = array("Toyota", "Honda", "BMW", "Ford", "Hyundai");
print_r($top_car_brands);
?>

Mảng Đánh Số Thứ Tự trong PHP

Chúng ta cũng có thể sử dụng khoá là số tự nhiên nhưng không liên tiếp nhau:

$top_car_brands = array("Toyota", "Honda", 2=> "BMW", 4=> "Hyundai");
$top_car_brands = array("Toyota", "Honda", 4=> "Hyundai", "BMW");

Mảng Đánh Số Thứ Tự với Thứ Tự Tuỳ Ý trong PHP

Để lặp qua các phần tử trong mảng đánh số thứ tự chúng ta thường sử dụng vòng lặp for:

<?php 
$top_car_brands =["Toyota", "Honda", "BMW", "Ford", "Hyundai"];
$length = count($top_car_brands);

for ($i = 0; $i < $length; $i++) {
    echo "Hãng xe đứng số " . ($i + 1) . " là: {$top_car_brands[$i]}<br>";
}
?>

Lặp Qua Từng Phần Tử trong Mảng

Mảng Kết Hợp - Associative Array

Mảng kết hợp (associative array) trong PHP là loại mảng sử dụng khoá là giá trị tuỳ ý thay vì các số tự nhiên liên tiếp.

<?php
$top_car_brands = [
    "Toyota" => "Japan",
    "Honda" => "Japan",
    "BMW" => "German",
    "Ford" => "USA",
    "Hyundai" => "Korea",
];

print_r($top_car_brands);
?>

Mảng Kết Hợp (Associative Array) trong PHP

Để lặp qua từng phần tử trong mảng kết hợp chúng ta thường sử dụng foreach:

<?php
foreach ($top_car_brands as $brand => $country) {
    echo "$brand là hãng xe của $country<br>";
}
?>

Lặp Qua Từng Phần Tử trong Mảng Kết Hợp

Trường hợp bạn không cần tới khoá mà chỉ cần tới giá trị của phần tử:

<?php
foreach ($top_car_brands as $country) {
    echo "$country<br>";
}
?>

Lặp Qua Từng Phần Tử trong Mảng Kết Hợp Không Dùng Tới Khoá

Mảng Đa Chiều (Multidimensional Array)

Mảng đa chiều (multidimensional array) là loại mảng mà nó chứa một mảng khác bên trong nó:

<?php
$students = [
    [
        'student_code' => 'MSSV_K12_0001',
        'name' => 'Nguyễn Văn An',
        'gender' => 'Nam',
        'age' => 22,
    ],
    [
        'student_code' => 'MSSV_K12_0002',
        'name' => 'Lê Thị Bình',
        'gender' => 'Nữ',
        'age' => 23,
    ],
];

print_r($students);
print_r($students[0]);
print_r($students[1]);
?>

Mảng Đa Chiều - Multidimentional Array trong PHP

Giá trị của biến $students là một mảng đa chiều vì các phần tử có giá trị là các mảng khác nhau.

Lặp qua mảng đa chiều trên sử dụng vòng lặp for:

$length = $students;
for ($i = 0; $i < $length; $i++) {
    echo "Sinh viên với mã số {$students[$i]['student_code']} tên là {$students[$i]['name']}<br>";
}

Lặp qua mảng đa chiều sử dụng vòng lặp for trong PHP

Các phần tử của mảng đa chiều có thể được đánh khoá tự do giống như mảng kết hợp:

<?php
$students = [
    'MSSV_K12_0001' => [
        'name' => 'Nguyễn Văn An',
        'gender' => 'Nam',
        'age' => 22,
    ],
    'MSSV_K12_0002' => [
        'name' => 'Lê Thị Bình',
        'gender' => 'Nữ',
        'age' => 23,
    ],
];

print_r($students);
?>

Mảng Đa Chiều - Multidimentional Array Đánh Khoá Tự Do trong PHP

Lặp qua mảng đa chiều trên sử dụng vòng lặp foreach:

foreach ($students as $student_code => $student_info) {
    echo "Sinh viên với mã số {$student_code} tên là {$student_info['name']}<br>";
}

https://www.codehub.vn/PHP-Co-Ban/Mang/Vi-Du/Lap-qua-mang-da-chieu-su-dung-vong-lap-foreach-trong-PHP

Thay Đổi Giá Trị Của Phần Tử trong Mảng

Để thay đổi giá trị của phần tử trong mảng chúng ta sử dụng toán tử gán giá trị cho phần tử đó:

<?php 
    $top_car_brands =["Toyota", "Honda", "BMW", "Ford", "Hyundai"];
        $top_car_brands[4] = "Mercedes";
    print_r($top_car_brands);
?>

Thay Đổi Giá Trị Của Phần Tử trong Mảng PHP

Thêm Phần Tử Vào Mảng

Để thêm phần tử vào mảng chúng ta sử dụng toán tử gán giá trị với khoá tương ứng cho phần tử được thêm vào:

<?php 
    $top_car_brands =["Toyota", "Honda", "BMW", "Ford", "Hyundai"];
        $top_car_brands[5] = "Mercedes";
    print_r($top_car_brands);
?>

Thêm Phần Tử vào Mảng trong PHP

Thêm Phần Tử Vào Cuối Mảng

Khi thêm phần tử vào mảng mà không sử dụng khoá cho phần tử này thì nó sẽ tự động được thêm vào sau phần tử cuối mảng trong mảng hiện tại:

<?php 
    $top_car_brands =["Toyota", "Honda", "BMW", "Ford", "Hyundai"];
        $top_car_brands[5] = "Mercedes";
    print_r($top_car_brands);
?>

Thêm Phần Tử vào Cuối Mảng trong PHP

Xoá Phần Tử trong Mảng

Để xoá phần tử trong một mảng cho trước, chúng ta sử dụng hàm unset():

<?php 
    $top_car_brands =["Toyota", "Honda", "BMW", "Ford", "Hyundai", "Mercedes"];
        unset($top_car_brands[5]);
    print_r($top_car_brands);
?>

Xoá Phần Tử của Mảng trong PHP

Mảng Rỗng

Mảng rỗng là mảng mà không chứa bất cứ phần tử nào:

<?php
    $empty_array = [];
    print_r($empty_array);
?>

Mảng Rỗng Trong PHP

Khi gọi hàm count() trên mảng rỗng giá trị trả về là 0 và chúng ta hoàn toàn có thể thêm phần tử vào mảng rỗng.

10 bình luận


Đăng bình luận