Array, mảng trong PHP, là một trong những cấu trúc dữ liệu quan trọng cho phép bạn lưu trữ và quản lý một tập hợp các giá trị dưới một tên duy nhất. PHP hỗ trợ nhiều loại mảng, bao gồm mảng liên tục, mảng kết hợp, và mảng đa chiều. Mảng là một công cụ mạnh mẽ cho việc tổ chức và xử lý dữ liệu trong các ứng dụng PHP, cho phép bạn thực hiện các tác vụ phức tạp như tìm kiếm, sắp xếp và thống kê dễ dàng hơn. Hãy cùng Vietnix tham khảo thêm về Mảng trong PHP qua bài viết sau đây.
Mảng là gì?
Mảng trong PHP là kiểu cấu trúc dữ liệu cho phép người dùng lưu trữ nhiều phần tử có kiểu dữ liệu giống nhau dưới một biến duy nhất. Nhờ đó tiết kiệm công sức tạo nhiều biến khác cho mỗi dữ liệu.
Đây là kiểu dữ liệu rất hữu ích để tạo danh sách các phần tử có kiểu tương tự, có thể truy cập bằng index hoặc key. Trong trường hợp số lượng dữ liệu ít bạn dễ dàng tạo biến chuỗi cho các giá trị này, nhưng nếu số lượng nhiều lên tới hàng trăm, việc thực hiện thủ công trở nên khó khăn hơn.
Lúc này cấu trúc dữ liệu đó phát huy tác dụng và giúp người dùng lưu trữ mọi phần tử trong một biến duy nhất và cũng cho phép truy cập dễ dàng bằng index hoặc key. Một mảng được tạo bằng hàm array()
trong PHP.
Mọi người cũng xem:
Phân loại mảng trong PHP:
- Indexed or Numeric Arrays: các giá trị lưu trữ tuyến tính (có thứ tự).
Các loại kiểu dữ liệu này có thể được sử dụng để lưu trữ bất kỳ loại phần tử nào, nhưng index luôn là một số. Theo mặc định, index bắt đầu từ số 0. Các mảng này có thể được tạo theo hai cách khác nhau như trong ví dụ sau:
<?php
// One way to create an indexed array
$name_one = array("Zack", "Anthony", "Ram", "Salim", "Raghav");
// Accessing the elements directly
echo "Accessing the 1st array elements directly:\n";
echo $name_one[2], "\n";
echo $name_one[0], "\n";
echo $name_one[4], "\n";
// Second way to create an indexed array
$name_two[0] = "ZACK";
$name_two[1] = "ANTHONY";
$name_two[2] = "RAM";
$name_two[3] = "SALIM";
$name_two[4] = "RAGHAV";
// Accessing the elements directly
echo "Accessing the 2nd array elements directly:\n";
echo $name_two[2], "\n";
echo $name_two[0], "\n";
echo $name_two[4], "\n";
?>
Output như sau:
Accessing the 1st array elements directly: Ram Zack Raghav Accessing the 2nd array elements directly: RAM ZACK RAGHAV
Bạn có thể duyệt mảng được lập index bằng cách dùng các vòng lặp PHP. Tại đây, bạn triển khai vòng lặp qua mảng theo 2 cách: đầu tiên là dùng vòng lặp for()
và thứ hai là dùng foreach()
.
<?php
// Creating an indexed array
$name_one = array("Zack", "Anthony", "Ram", "Salim", "Raghav");
// One way of Looping through an array using foreach
echo "Looping using foreach: \n";
foreach ($name_one as $val){
echo $val. "\n";
}
// count() function is used to count
// the number of elements in an array
$round = count($name_one);
echo "\nThe number of elements are $round \n";
// Another way to loop through the array using for
echo "Looping using for: \n";
for($n = 0; $n < $round; $n++){
echo $name_one[$n], "\n";
}
?>
Output như sau:
Looping using foreach: Zack Anthony Ram Salim Raghav The number of elements is 5 Looping using for: ZACK ANTHONY RAM SALIM RAGHAV
- Associative Arrays: có index chuỗi bên trong thay vì lưu trữ tuyến tính, mỗi giá trị có key riêng cụ thể là key của loại chuỗi do người dùng xác định.
Ví dụ:
<?php
// One way to create an associative array
$name_one = array("Zack"=>"Zara", "Anthony"=>"Any",
"Ram"=>"Rani", "Salim"=>"Sara",
"Raghav"=>"Ravina");
// Second way to create an associative array
$name_two["zack"] = "zara";
$name_two["anthony"] = "any";
$name_two["ram"] = "rani";
$name_two["salim"] = "sara";
$name_two["raghav"] = "ravina";
// Accessing the elements directly
echo "Accessing the elements directly:\n";
echo $name_two["zack"], "\n";
echo $name_two["salim"], "\n";
echo $name_two["anthony"], "\n";
echo $name_one["Ram"], "\n";
echo $name_one["Raghav"], "\n";
?>
Output như sau:
Accessing the elements directly: zara sara any Rani Ravina
Bạn có thể duyệt qua các mảng kết hợp này theo cách tương tự như trên bằng các vòng lặp. Chúng ta có thể lặp qua mảng kết hợp theo hai cách. Đầu tiên bằng cách sử dụng vòng lặp for
và thứ hai bằng cách sử dụng foreach
.
<?php
// Creating an associative array
$name_one = array("Zack"=>"Zara", "Anthony"=>"Any",
"Ram"=>"Rani", "Salim"=>"Sara",
"Raghav"=>"Ravina");
// Looping through an array using foreach
echo "Looping using foreach: \n";
foreach ($name_one as $val => $val_value){
echo "Husband is ".$val." and Wife is ".$val_value."\n";
}
// Looping through an array using for
echo "\nLooping using for: \n";
$keys = array_keys($name_two);
$round = count($name_two);
for($i=0; $i < $round; ++$i) {
echo $keys[$i] . ' ' . $name_two[$keys[$i]] . "\n";
}
?>
Output như sau:
Looping using foreach: Husband is Zack and Wife is Zara Husband is Anthony and Wife is Any Husband is Ram and Wife is Rani Husband is Salim and Wife is Sara Husband is Raghav and Wife is Ravina Looping using for: zack zara anthony any ram rani salim sara raghav ravina
- Multidimensional Arrays: một mảng chứa nhiều mảng con bên trong, truy cập thông qua nhiều index.
Mảng đa chiều là những mảng lưu trữ một mảng khác tại mỗi index thay vì một phần tử. Có thể hiểu theo cách khác mảng đa chiều nghĩa là một “array” tập hợp nhiều mảng con ở bên trong nó. Trong đó, mọi phần tử trong mảng này có thể là một mảng và chúng cũng có thể chứa các mảng con khác bên trong. Mảng hoặc mảng con (sub-array) trong mảng đa chiều có thể được truy cập bằng nhiều chiều.
Ví dụ:
<?php
// Defining a multidimensional array
$favorites = array(
array(
"name" => "Dave Punk",
"mob" => "5689741523",
"email" => "davepunk@gmail.com",
),
array(
"name" => "Monty Smith",
"mob" => "2584369721",
"email" => "montysmith@gmail.com",
),
array(
"name" => "John Flinch",
"mob" => "9875147536",
"email" => "johnflinch@gmail.com",
)
);
// Accessing elements
echo "Dave Punk email-id is: " . $favorites[0]["email"], "\n";
echo "John Flinch mobile number is: " . $favorites[2]["mob"];
?>
Output như sau:
Dave Punk email-id is: davepunk@gmail.com
John Flinch mobile number is: 9875147536
- Duyệt mảng đa chiều : Người dùng có thể duyệt qua mảng đa chiều bằng cách sử dụng vòng lặp
for
vàforeach
theo cách lồng nhau. Tức là, mỗi mảng sẽ đi kèm một vòng lặpfor
với nó từ ngoài vào trong.
Ví dụ:
<?php
// Defining a multidimensional array
$favorites = array(
"Dave Punk" => array(
"mob" => "5689741523",
"email" => "davepunk@gmail.com",
),
"Dave Punk" => array(
"mob" => "2584369721",
"email" => "montysmith@gmail.com",
),
"John Flinch" => array(
"mob" => "9875147536",
"email" => "johnflinch@gmail.com",
)
);
// Using for and foreach in nested form
$keys = array_keys($favorites);
for($i = 0; $i < count($favorites); $i++) {
echo $keys[$i] . "\n";
foreach($favorites[$keys[$i]] as $key => $value) {
echo $key . " : " . $value . "\n";
}
echo "\n";
}
?>
Output như sau:
Dave Punk mob : 2584369721 email : montysmith@gmail.com John Flinch mob : 9875147536 email : johnflinch@gmail.com
Lời kết
Vietnix hy vọng nội dung bài viết trên đã giúp bạn hiểu rõ hơn về kiểu cấu trúc dữ liệu array hay mảng trong PHP. Ngoài ra, bạn cũng có thể tham khảo thêm các bài viết khác tại vietnix.vn để hiểu hơn về lập trình, chúc bạn thành công!