Bài 12: Array (Mảng) trong PHP

Bài học này bạn sẽ học được cách sử dụng mảng trong PHP. Hiểu về mảng chỉ mục, mảng liên kết, mảng đa chiều và cách xem cấu trúc, dữ liệu của nó

cach-su-dung-mang-trong-php

Bài học này bạn sẽ học được cách sử dụng mảng trong PHP. Hiểu về mảng chỉ mục, mảng liên kết, mảng đa chiều và cách xem cấu trúc, dữ liệu của nó

1. Array (Mảng) trong PHP là gì?

Mảng là các biến phức tạp cho phép chúng ta lưu trữ nhiều hơn một giá trị hoặc một nhóm các giá trị dưới một tên biến duy nhất.

Giả sử bạn muốn lưu trữ màu sắc trong tập lệnh PHP của mình. Lưu trữ từng màu một trong một biến có thể trông giống như thế này:

<?php
$color1 = "Red";
$color2 = "Green";
$color3 = "Blue";
?>

Nhưng nếu bạn muốn lưu hàng trăm loại màu, hằng trăm thành phố, hàng trăm nhãn hiệu. Chả nhẽ lại tạo từng biến và gán giá trị cho nó?

Như vậy thì quá thủ công và không thông minh.

Thậm chí nó còn làm tốn bộ nhớ và tài nguyên.

Do đó, giải pháp là đẩy tất cả vào một mảng, đặt tên mảng và đánh số thứ tự cho nó là OK.

Các loại mảng có trong PHP:

Có ba loại mảng mà bạn có thể tạo. Đó là:

  • Indexed Array – Một mảng có number key.
  • Associative array (Mảng kết hợp) – Một mảng trong đó có key và value riêng
  • Multidimensional array (Mảng đa chiều) – Một mảng chứa một hoặc nhiều mảng trong chính nó.

2. Indexed Array trong PHP

Một mảng được lập chỉ mục hoặc số lưu trữ từng phần tử mảng với một chỉ mục.

Các ví dụ sau đây cho thấy hai cách tạo một mảng được lập chỉ mục, cách dễ nhất là:

<?php
// Define an indexed array
$colors = array("Red", "Green", "Blue");
?>
Lưu ý: Trong một mảng được lập chỉ mục hoặc số, các chỉ mục được tự động gán và bắt đầu bằng 0 và các giá trị có thể là bất kỳ loại dữ liệu nào.

Cạch viết trên tương đương với ví dụ sau, trong đó các chỉ mục được gán thủ công:

<?php
$colors[0] = "Red"; 
$colors[1] = "Green"; 
$colors[2] = "Blue"; 
?>

Trong lập trình. Vị trí đầu tiên bắt đầu từ số 0, nên giá trị đầu tiên trong mảng sẽ có index là 0.

3. Associative Arrays (Mảng kết hợp) trong PHP

Trong một mảng kết hợp, các key được gán cho các giá trị có thể là các chuỗi tùy ý và do người dùng xác định.

Trong ví dụ sau, mảng sử dụng các key thay vì chỉ mục số:

<?php
// Define an associative array
$ages = array("Peter"=>22, "Clark"=>32, "John"=>28);
?>

Ví dụ sau tương đương với ví dụ trước, nhưng cho thấy một cách khác để tạo mảng kết hợp:

<?php
$ages["Peter"] = "22";
$ages["Clark"] = "32";
$ages["John"] = "28";
?>

Như các bạn thấy, thay vì đánh chỉ mục dạng số thì chúng ta có thể đặt key cho nó luôn.

4. Multidimensional Arrays (Mảng đa chiều) trong PHP

Mảng đa chiều là một mảng trong đó mỗi phần tử cũng có thể là một mảng và mỗi phần tử trong mảng con có thể là một mảng hoặc tiếp tục chứa mảng trong chính nó, v.v.

Một ví dụ về mảng đa chiều sẽ trông giống như thế này:

<?php
// Define a multidimensional array
$contacts = array(
    array(
        "name" => "Peter Parker",
        "email" => "peterparker@mail.com",
    ),
    array(
        "name" => "Clark Kent",
        "email" => "clarkkent@mail.com",
    ),
    array(
        "name" => "Harry Potter",
        "email" => "harrypotter@mail.com",
    )
);
// Access nested value
echo "Peter Parker's Email-id is: " . $contacts[0]["email"];
?>

Ở đây bạn có thể thấy, trong mảng $contacts có chứa 3 mảng con kết hợp có key và value riêng.

5. Cách xem cấu trúc và giá trị mảng trong PHP

Bạn có thể thấy cấu trúc và giá trị của bất kỳ mảng nào bằng cách sử dụng một trong hai câu lệnh:

  • var_dump()
  • print_r()

Tuy nhiên, nếu bạn sử dụng câu lệnh print_r() thì sẽ nhận được ít thông tin hơn về mảng. Hãy xem xét ví dụ sau:

<?php
// Define array
$cities = array("London", "Paris", "New York");
 
// Display the cities array
print_r($cities);
?>

Câu lệnh print_r() sẽ đưa ra kết quả như sau:

Array ( [0] => London [1] => Paris [2] => New York )

Đầu ra này chỉ hiển thị key và value cho từng phần tử trong mảng. Để có thêm thông tin, sử dụng hàm var_dump() như sau:

<?php
// Define array
$cities = array("London", "Paris", "New York");
 
// Display the cities array
var_dump($cities);
?>

Câu lệnh var_dump() này cho output như sau:

array(3) { [0]=> string(6) "London" [1]=> string(5) "Paris" [2]=> string(8) "New York" }

Kết quả này không chỉ hiển thị key và value mà còn hiển thị loại dữ liệu của từng thành phần, chẳng hạn như:

  • Key: 0
  • Value: London
  • Type: string
  • 6 ký tự

TỔNG KẾT

Như vậy là các bạn đã tìm hiểu về mảng và các loại mảng trong PHP. Biết cách khai báo một mảng và xem cấu trúc và giá trị của mảng.

Bài tới chúng ta sẽ học về cách sắp xếp mảng trong PHP. Bạn cũng sẽ được học cách lặp qua các giá trị của mảng ở các bài học tiếp theo.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *