Chuyển đến nội dung chính

Mảng Trong PHP

Mảng là một cấu trúc dữ liệu lưu trữ một hoặc nhiều loại giá trị tương tự trong một giá trị duy nhất. Ví dụ: nếu bạn muốn lưu trữ 100 số thì thay vì xác định 100 biến dễ dàng để xác định một mảng có độ dài 100. Tìm hiểu về Mảng (Array) trong PHP được sử dụng để tạo một mảng. Mảng là một trong những nội dung cơ bản rất quan trọng trong khóa học lập trình PHP, vì thế học viên nên nắm bắt thật chắc về mảng.

mảng php
mảng php

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

  • Mảng được lập chỉ mục – Mảng có chỉ mục số
  • Mảng kết hợp – Mảng với các phím được đặt tên
  • Mảng đa chiều – Mảng chứa một hoặc nhiều mảng

1. Mảng được lập chỉ mục – Mảng có chỉ mục số

Các mảng này có thể lưu trữ số, chuỗi và bất kỳ đối tượng nào nhưng chỉ mục của chúng sẽ được biểu diễn bằng số. Theo chỉ mục mảng mặc định bắt đầu từ số không.

Thí dụ

Sau đây là ví dụ cho thấy cách tạo và truy cập mảng số.

Ở đây chúng ta đã sử dụng hàm array () để tạo mảng. Hàm này được giải thích trong tham chiếu hàm.

 

/* First method to create array. */

$numbers = array( 1, 2, 3, 4, 5);

foreach( $numbers as $value ) {

echo "Value is $value
";

}

/* Second method to create array. */

$numbers[0] = "one";

$numbers[1] = "two";

$numbers[2] = "three";

$numbers[3] = "four";

$numbers[4] = "five";

foreach( $numbers as $value ) {

echo "Value is $value
";

}

?>

 

Điều này sẽ tạo ra kết quả sau:

Mảng được lập chỉ mục - Mảng có chỉ mục số
Mảng được lập chỉ mục – Mảng có chỉ mục số

2. Mảng kết hợp – Mảng với các khóa được đặt tên

Các mảng kết hợp rất giống với mảng số về mặt chức năng nhưng chúng khác nhau về chỉ mục của chúng. Mảng kết hợp sẽ có chỉ mục của chúng dưới dạng chuỗi để bạn có thể thiết lập mối liên kết chặt chẽ giữa khóa và giá trị.

Để lưu trữ tiền lương của nhân viên trong một mảng, một mảng được lập chỉ mục bằng số sẽ không phải là lựa chọn tốt nhất. Thay vào đó, chúng tôi có thể sử dụng tên nhân viên làm khóa trong mảng kết hợp của chúng tôi và giá trị sẽ là mức lương tương ứng của họ.

LƯU Ý – Không giữ mảng kết hợp bên trong báo giá kép trong khi in nếu không nó sẽ không trả về bất kỳ giá trị nào.

Thí dụ:

 

/* First method to associate create array. */

$salaries = array("mohammad" => 2000, "qadir" => 1000, "zara" => 500);

echo "Salary of mohammad is ". $salaries['mohammad'] . "
";

echo "Salary of qadir is ". $salaries['qadir']. "
";

echo "Salary of zara is ". $salaries['zara']. "
";

/* Second method to create array. */

$salaries['mohammad'] = "high";

$salaries['qadir'] = "medium";

$salaries['zara'] = "low";

echo "Salary of mohammad is ". $salaries['mohammad'] . "
";

echo "Salary of qadir is ". $salaries['qadir']. "
";

echo "Salary of zara is ". $salaries['zara']. "
";

?>

 

Điều này sẽ tạo ra kết quả sau:

Mảng kết hợp - Mảng với các phím được đặt tên
Mảng kết hợp – Mảng với các phím được đặt tên

3. Mảng đa chiều – Mảng chứa một hoặc nhiều mảng

Mảng đa chiều - Mảng chứa một hoặc nhiều mảng
Mảng đa chiều – Mảng chứa một hoặc nhiều mảng

Mảng đa chiều mỗi phần tử trong mảng chính cũng có thể là một mảng. Và mỗi phần tử trong mảng phụ có thể là một mảng, v.v. Giá trị trong mảng đa chiều được truy cập bằng nhiều chỉ mục.

Thí dụ:

Trong ví dụ này, chúng ta tạo một mảng hai chiều để lưu trữ các dấu hiệu của ba học sinh trong ba môn học.

Ví dụ này là một mảng kết hợp, bạn có thể tạo mảng số theo cùng một kiểu.

 

$marks = array(

"mohammad" => array (

"physics" => 35,

"maths" => 30,

"chemistry" => 39

),

"qadir" => array (

"physics" => 30,

"maths" => 32,

"chemistry" => 29

),

"zara" => array (

"physics" => 31,

"maths" => 22,

"chemistry" => 39

)

);

/* Accessing multi-dimensional array values */

echo "Marks for mohammad in physics : " ;

echo $marks['mohammad']['physics'] . "
";

echo "Marks for qadir in maths : ";

echo $marks['qadir']['maths'] . "
";

echo "Marks for zara in chemistry : " ;

echo $marks['zara']['chemistry'] . "
";

?>

 

Điều này sẽ tạo ra kết quả sau:

Mảng đa chiều - Mảng chứa một hoặc nhiều mảng (2)
Mảng đa chiều – Mảng chứa một hoặc nhiều mảng (2)

4. Danh sách hàm dùng để xử lý Mảng (Array) trong PHP

Cột PHP chỉ phiên bản PHP sớm nhất mà hỗ trợ hàm đó.

Hàm Miêu tả PHP
Hàm array() Tạo một mảng 3
Hàm array_change_key_case() Trả về một mảng với tất cả key trong dạng chữ hoa hoặc chữ thường 4
Hàm array_chunk() Chia một mảng thành một mảng các mảng 4
Hàm array_combine() Tạo một mảng bởi sử dụng một mảng cho key và mảng khác cho value 5
Hàm array_count_values() Trả về một mảng với số lần xuất hiện mỗi value 4
Hàm array_diff() So sánh các value của mảng, và trả về các sự khác nhau 4
Hàm array_diff_assoc() So sánh key và value của mảng, và trả về sự khác nhau 4
Hàm array_diff_key() So sánh các key của mảng, và trả về các sự khác nhau 5
Hàm array_diff_uassoc() So sánh key và value của mảng, với một hàm kiểm tra bổ sung do người dùng tạo, và trả về các sự khác nhau 5
Hàm array_diff_ukey() So sánh key của mảng, với một hàm kiểm tra bổ sung do người dùng tạo, và trả về các sự khác nhau 5
Hàm array_fill() Điền value vào một mảng 4
Hàm array_fill_keys() Điền value vào một mảng, chỉ rõ các key 5
Hàm array_filter() Lọc các phần tử của một mảng bởi sử dụng một hàm do người dùng tạo 4
Hàm array_flip() Trao đổi tất cả key với value được liên hợp với chúng trong một mảng 4
Hàm array_intersect() So sánh các value trong mảng và trả về các so khớp 4
Hàm array_intersect_assoc() So sánh các key và value trong mảng và trả về các so khớp 4
Hàm array_intersect_key() So sánh các key trong mảng và trả về các so khớp 5
Hàm array_intersect_uassoc() So sánh các key và value trong mảng, với một hàm kiểm tra bổ sung do người dùng tạo và trả về các so khớp 5
Hàm array_intersect_ukey() So sánh các key trong mảng, với một hàm kiểm tra bổ sung do người dùng tạo và trả về các so khớp 5
Hàm array_key_exists() Kiểm tra xem key đã cho có tồn tại trong mảng không 4
Hàm array_keys() Trả về tất cả key của một mảng 4
Hàm array_map() Gửi mỗi value của một mảng tới một hàm do người dùng tạo, mà trả về các value mới 4
Hàm array_merge() Sáp nhập một hoặc nhiều mảng thành một mảng 4
Hàm array_merge_recursive() Sáp nhập một hoặc nhiều mảng thành một mảng 4
Hàm array_multisort() Sắp xếp các mảng đa chiều 4
Hàm array_pad() Chèn số lượng item đã xác định với một value đã xác định vào một mảng 4
Hàm array_pop() Xóa phần tử cuối cùng của một mảng 4
Hàm array_product() Tính toán tích các value trong một mảng 5
Hàm array_push() Chèn một hoặc nhiều phần tử vào phần cuối của một mảng 4
Hàm array_rand() Trả về một hoặc nhiều key ngẫu nhiên từ một mảng 4
Hàm array_reduce() Trả về một mảng ở dạng string, sử dụng hàm do người dùng tạo 4
Hàm array_reverse() Trả về một mảng với thứ tự bị đảo ngược 4
Hàm array_search() Tìm kiếm một mảng cho một value đã cho và trả về key 4
Hàm array_shift() Gỡ bỏ phần tử đầu tiên từ một mảng, và trả về value của phần tử bị gỡ bỏ 4
Hàm array_slice() Trả về các phần đã chọn của một mảng 4
Hàm array_splice() Gỡ bỏ và thay thế các phần tử đã xác định của một mảng 4
Hàm array_sum() Trả về tổng các value trong một mảng 4
Hàm array_udiff() So sánh các value của mảng trong một hàm do người dùng tạo và trả về một mảng 5
Hàm array_udiff_assoc() So sánh các key của mảng, và so sánh các value của mảng trong một hàm do người dùng tạo, và trả về một mảng 5
Hàm array_udiff_uassoc() So sánh các key và value của mảng trong một hàm do người dùng tạo, và trả về một mảng 5
Hàm array_uintersect() So sánh các value của mảng trong một hàm do người dùng tạo, và trả về một mảng 5
Hàm array_uintersect_assoc() So sánh các key của mảng, và so sánh các value của mảng trong một hàm do người dùng tạo, và trả về một mảng 5
Hàm array_uintersect_uassoc() So sánh các value của mảng trong một hàm do người dùng tạo, và trả về một mảng 5
Hàm array_unique() Gỡ bỏ bản sao các value từ một mảng 4
Hàm array_unshift() Thêm một hoặc nhiều phần tử tới phần đầu của mảng 4
Hàm array_values() Trả về tất cả value của một mảng 4
Hàm array_walk() Áp dụng một hàm do người dùng tạo tới mỗi thành viên của một mảng 3
Hàm array_walk_recursive() Áp dụng một hàm một cách đệ qui do người dùng tạo tới mỗi thành viên của một mảng 5
Hàm arsort() Sắp xếp một mảng với thứ tự đảo ngược và duy trì liên kết chỉ mục 3
Hàm asort() Sắp xếp một mảng và duy trì liên kết chỉ mục 3
Hàm compact() Tạo một mảng chứa các biến và các value của chúng 4
Hàm count() Đếm các phần tử trong một mảng, hoặc các thuộc tính trong một đối tượng 3
Hàm current() Trả về phần tử hiện tại trong một mảng 3
Hàm each() Trả về cặp key và value hiện tại từ một mảng 3
Hàm end() Thiết lập con trỏ nội bộ của một mảng tới phần tử cuối cùng của nó 3
Hàm extract() Nhập các biến vào trong bảng biểu tượng hiện tại từ một mảng 3
Hàm in_array() Kiểm tra nếu một value đã xác định là tồn tại trong một mảng 4
Hàm key() Lấy một key từ một mảng 3
Hàm krsort() Sắp xếp một mảng bằng các key theo thứ tự đảo ngược 3
Hàm ksort() Sắp xếp một mảng bằng các key 3
Hàm list() Gán các biến như nếu chúng là một mảng 3
Hàm natcasesort() Sắp xếp một mảng bởi sử dụng một thuật toán “natural order” không phân biệt kiểu chữ 4
Hàm natsort() Sắp xếp một mảng bởi sử dụng một thuật toán “natural order” 4
Hàm next() Tăng con trỏ mảng nội bộ hay trỏ tới phần tử kế tiếp của một mảng 3
Hàm pos() Alias của hàm current() 3
Hàm prev() Giảm con trỏ mảng nội bộ hay trỏ tới phần tử ở trước của một mảng 3
Hàm range() Tạo một mảng chứa một phạm vi phần tử 3
Hàm reset() Thiết lập con trỏ nội bộ của mảng về phần tử đầu tiên của nó 3
Hàm rsort() Sắp xếp một mảng theo thứ tự đảo ngược 3
Hàm shuffle() Xáo trộn một mảng 3
Hàm sizeof() Alias của hàm count() 3
Hàm sort() Sắp xếp một mảng 3
Hàm uasort() Sắp xếp một mảng với một hàm do người dùng tạo và duy trì liên kết chỉ mục 3
Hàm uksort() Sắp xếp một mảng bằng các key bởi sử dụng một hàm do người dùng tạo 3
Hàm usort() Sắp xếp một mảng bằng các value bởi sử dụng một hàm do người dùng tạo 3

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

Thêm phần tử vào cuối mảng

<?php
$list_odd = array(1,3,5,7);
// Thêm phần tử giá trị 9 vào mảng có chỉ số key là số nguyên cao nhất.
$list_odd[] = 9;
?>

Khi thực hiện cấu trúc dấu ngoặc vuông rỗng [] để thêm phần từ thì phần tử được thêm vào mảng có chỉ số lớn nhất cộng thêm một giá trị.

Thêm phần tử bởi một key(chỉ mục) xác định trước

<?php
$student = array(
    '08T1016' => "Phan Văn Cương",
    '08T1013' => "Nguyễn Văn Hoàng",
    '08T1015' => "Bùi Việt Đức",
);
// Thêm phần tử có key xác định vào mảng $student
$student['08T1019']= "Trần Thị Hằng";
?>

6. Cập Nhật Giá Trị Phần Tử Của Mảng

Để cập nhật giá trị của mảng chúng ta cần xác định key của phần tử cần cập nhật và thực hiện thao tác gán lại giá trị.

<?php
$list_color = array('Green', 'Red', 'Blue');
// Cập nhật giá trị Green bằng Back
$list_color[0] = Black;
?>

7. Xóa Một Phần Tử Trong Mảng

Để xóa phần tử của mảng ta sử dụng hàm unset()

<?php
$student = array(
    '08T1016' => "Phan Văn Cương",
    '08T1013' => "Nguyễn Văn Hoàng",
    '08T1015' => "Bùi Việt Đức",
);
// Xóa Bùi Việt Đức ra khỏi mảng $student
unset($student['08T1015']);
print_r($student);
?>

Xóa tất cả các phần tử của mảng

<?php
unset($student);
?>

 

The post Mảng Trong PHP first appeared on Techacademy.



Nhận xét

Bài đăng phổ biến từ blog này

Vẽ Tam Giác Trong C++

Vẽ tam giác trong C++ là một trong những bài tập lập trình về C++ sử dụng vòng lặp khá hay giúp các bạn luyện tư duy code cũng như cách sử dụng vòng lặp. Dưới đây là một số lời giải các bài tập vẽ tam giác trong C++ I. Vẽ Tam Giác Cân Trong C++ Viết chương trình C++ sử dụng ký tự * để vẽ tam giác vuông cân trong C++.Chúng ta sử dụng hai vòng lặp lồng nhau để giải bài toán này. Lời Giải: #include <stdio.h> #include <stdlib.h> int main() { int n; int q = 0; printf("Chuong trinh nay se in ra tam giac can\n"); printf("Nhap chieu cao tam giac cua ban: \n"); scanf("%d",&n); while (n > 0) { for (int i = 1; i<n; i++) printf("%c", ' '); for (int k = 0; k <= q; k ++) printf("%c", '*'); n -- ; q += 2 ; printf("\n"); } return 0; } II. Vẽ Hình Tam Giác Trong C++ Viết một chương trình in ra hình

Nên học C hay C++ ? Lựa chọn nào tốt hơn

Bạn đang mới học lập trình và đang phân vân nên học lập trình C hay C++ , bài viết dưới đây của Tehcacademy.edu.vn sẽ phần nào giải đáp cho bạn thắc mắc trên.  I. Nên học ngôn ngữ lập trình C hay C++ Nếu bạn đang phân vẫn lựa chọn nên học C hay C++ thì dưới đây là một số ưu điểm và nhược điểm của ngôn ngữ lập trình C và C++. Dựa trên đánh giá này, giúp bạn lựa chọn nên học lập trình C hay C++ 1, Ưu điểm và nhược điểm của ngôn ngữ lập trình C, C++ Dưới đây là một số ưu điểm, nhược điểm của ngôn ngữ c và c++: C, C++ đều có những ưu điểm và nhược điểm riêng + Ngôn ngữ lập trình C Ưu điểm : + Hiệu suất cao Mỗi một ngôn ngữ đều dựa vào khả năng sử dụng bộ nhớ để đánh giá hiệu suất. Đây chính là ưu điểm đầu tiên của C, nó có thể chạy mượt mà trên những hệ thống giới hạn về dung lượng, lý do là vì ngay từ đầu C được thiết kế với mục đích thay thế ASM trong các hệ thống bộ nhớ cực hạn chế thập niên 1960. + Tính linh hoạt Lập trình C có 2 tính linh hoạt và là 2 ưu điểm nổi bật củ

Tìm Phần Tử Xuất Hiện Nhiều Nhất Trong Mảng C++

Tìm phần tử xuất hiện nhiều nhất trong mảng là một vấn đề phổ biến trong lập trình C++. Để giải quyết vấn đề này, bạn có thể sử dụng một số phương pháp khác nhau như sử dụng bảng băm (hash table), sắp xếp mảng và duyệt qua mảng. Cùng techacademy đi tìm hiểu chi tiết chủ đề này ngay bài viết bên dưới đây nhé. I. Tìm Phần Tử Xuất Hiện Nhiều Nhất Trong Mảng C++ Trong lập trình C++, việc tìm ra phần tử xuất hiện nhiều nhất trong một mảng là một vấn đề phổ biến và quan trọng. Điều này thường được thực hiện thông qua việc sử dụng các thuật toán và cấu trúc dữ liệu phù hợp. Chúng ta sẽ thảo luận về cách thực hiện điều này một cách hiệu quả trong ngôn ngữ lập trình C++. 1. Sử dụng Bảng Băm (Hash Map): Một cách phổ biến để giải quyết vấn đề này là sử dụng bảng băm. Chúng ta có thể duyệt qua mảng, đếm số lần xuất hiện của mỗi phần tử và lưu trữ chúng trong một bảng băm. 2. Sắp Xếp và Đếm: Một cách khác là sắp xếp mảng và sau đó duyệt qua mảng để đếm số lần xuất hiện của mỗi phần tử liên ti