Mảng

Nguyễn Duy

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"];

Chạy Code

Đế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);
?>

Chạy Code

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);
?>

Chạy Code

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");

Chạy Code

Để 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>";
}
?>

Chạy Code

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);
?>

Chạy Code

Để 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>";
}
?>

Chạy Code

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>";
}
?>

Chạy Code

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]);
?>

Chạy Code

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>";
}

Chạy Code

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);
?>

Chạy Code

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);
?>

Chạy Code

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);
?>

Chạy Code

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);
?>

Chạy Code

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);
?>

Chạy Code

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);
?>

Chạy Code

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.

Thêm Phản Hồi

Câu Hỏi Liên Quan

Hướng Dẫn Liên Quan

  • Tài Liệu Học PHP

    Tài liệu tổng hợp bao gồm các bài hướng dẫn học lập trình với ngôn ngữ PHP hỗ trợ các phiên bản mới...
  • Lập Trình PHP và MySQL Cơ Bản

    Bài hướng dẫn này sẽ giúp các bạn tìm hiểu cách sử dụng PHP để: - Kết nối với database MySQL -...
  • Hàm trong PHP

    Hướng dẫn cách sử dụng các hàm thông dụng trong PHP với source code ví dụ kèm theo.
  • PHP Object Oriented Programming

    Đối với nhiều người lập trình PHP, lập trình hướng đối tượng là một khái niệm mang tính phức tạp, tr...
  • Git Cơ Bản

    Hướng dẫn này sẽ giúp các bạn tìm hiểu về các chức năng cơ bản của Git, phần mềm hàng đầu trong quản...