Cách tạo mảng (array) và thao tác với mảng trong PHP

Đây là bài 21/53 bài của series môn học Lập trình Web PHP

Trong bài này, chúng ta sẽ tìm hiểu về mảng (array) và các thao tác với mảng trong PHP. Để học tốt bài này, các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách chạy ứng dụng web PHP với XAMPP.

Những ngôn ngữ lập trình phổ biến như C/C++, Java,.. đều có khái niệm mảng (array). Trước khi học bài này, các bạn có thể đọc trước các bài Mảng một chiều là gì? Cách khai báo và khởi tạo trong C++Khai báo và khởi tạo mảng 1 chiều (one dimensional array) trong Java để hiểu hơn về mảng (array) trong C/C++ và Java. Lưu ý, mảng (array) trong PHP có những khác biệt so với mảng trong những ngôn ngữ này.

1. Mảng (array) trong PHP

Một mảng (array) trong PHP giúp lưu trữ nhiều giá trị trong một biến mảng. Những giá trị của mảng trong PHP có thể có kiểu dữ liệu khác nhau2 phần tử trong mảng có thể có cùng giá trị. Ví dụ:

// Các phần tử trong mảng có cùng kiểu dữ liệu
$cars = array("Volvo", "BMW", "Toyota");
// Các phần tử trong mảng khác kiểu dữ liệu
$arr1 = array("gochocit.com", 390, 5.5);
// 2 phần tử trong mảng có cùng giá trị
$arr2 = array("hihi", 1.1, "gochocit.com", "hihi");

Trong PHP, có 3 loại mảng sau:

    • Indexed array: Mảng với chỉ mục là một số nguyên
    • Associative array: Mảng kết hợp với các key
    • Multidimensional array: Mảng bao gồm một hoặc nhiều mảng khác

1.1. Tạo một mảng indexed trong PHP

Trong indexed array, các phần tử được đánh chỉ mục (index), bắt đầu từ 0. Thông qua index, chúng ta có thể truy xuất các phần tử trong mảng. Có 2 cách để tạo một indexed array:

Cách 1 – Sử dụng hàm array()

$names = array("John", "Mary", "Son", "Kane", "Lucas");
//Array ( [0] => John [1] => Mary [2] => Son [3] => Kane [4] => Lucas )
print_r($names);

Hàm print_r() giúp in ra một array trong PHP.

Cách 2 – Sử dụng chỉ mục (index)

$names[0] = "John";
$names[1] = "Mary";
$names[2] = "Son";
$names[3] = "Kane";
$names[4] = "Lucas";
//Array ( [0] => John [1] => Mary [2] => Son [3] => Kane [4] => Lucas )
print_r($names);

1.2. Lấy số lượng phần tử trong mảng

Hàm count() có chức năng trả về số lượng phần tử trong mảng.

<?php
$names = array("John", "Mary", "Son", "Kane", "Lucas");
echo 'Number of elements in $name array: '. count($names);
?>
Kết quả
Number of elements in $name array: 5

2. Duyệt các phần tử trong mảng

Sử dụng vòng lặp for

<?php
$names = array("John", "Mary", "Son", "Kane", "Lucas");
$arrlength = count($names);
for($x = 0; $x < $arrlength; $x++) {
  echo $names[$x];
  echo " ";
}
?>
Kết quả
John Mary Son Kane Lucas

Sử dụng vòng lặp foreach

<?php
$names = array("John", "Mary", "Son", "Kane", "Lucas");
foreach($names as $x){
  echo $x;
  echo " ";
}
?>
Kết quả
John Mary Son Kane Lucas

3. Sửa và xóa các phần tử trong mảng indexed

<?php
$names = array("John", "Mary", "Son", "Kane", "Lucas");
print_r($names);
echo "<br>";

// change item at index 0
$names[0]="gochocit.com";
echo '$name array after changed: ';
print_r($names);
echo "<br>";

// remove item at index 1 which is 'Mary'
unset($names[1]);
print_r($names);
echo "<br>";

// Re-index the array elements
$names1 = array_values($names);
echo '$name1 array after using array_values(): ';
print_r($names1);
?>
Kết quả
Array ( [0] => John [1] => Mary [2] => Son [3] => Kane [4] => Lucas )
$name array after changed: Array ( [0] => gochocit.com [1] => Mary [2] => Son [3] => Kane [4] => Lucas )
Array ( [0] => gochocit.com [2] => Son [3] => Kane [4] => Lucas )
$name1 array after using array_values(): Array ( [0] => gochocit.com [1] => Son [2] => Kane [3] => Lucas )

Sử dụng index và hàm unset() để sửa và xóa các phần tử của mảng trong PHP. Còn hàm array_values() giúp trả về một mảng được đánh lại chỉ số (index) sau khi đã xóa các phần tử.

5/5 - (1 bình chọn)
Bài trước và bài sau trong môn học<< Sử dụng câu lệnh break và continue với cấu trúc vòng lặp trong PHPMảng kết hợp (associative array) trong PHP >>
Chia sẻ trên mạng xã hội:

Trả lời

Lưu ý:

1) Vui lòng bình luận bằng tiếng Việt có dấu.

2) Khuyến khích sử dụng tên thật và địa chỉ email chính xác.

3) Mọi bình luận trái quy định sẽ bị xóa bỏ.