Dữ liệu mảng (Array)
Trong phần các kiểu dữ liệu (Data Types), mình có nói sơ qua về mảng nhưng do tính chất quan trọng của mảng trong lập trình PHP nên mình xin nói kỹ hơn ở bài viết này.
MẢNG (ARRAY) LÀ GÌ?
Mảng là một kiểu dữ liệu mà nó có thể chứa nhiều giá trị con bên trong. Hãy tưởng tượng như một mảng là một quyển sách, mỗi trang sách bên trong là giá trị (value) được đánh số bằng số trang (key).
Để tạo mảng, chúng ta sử dụng hàm array()
trong PHP (Từ PHP 5.4 trở lên bạn chỉ cần viết giá trị trong cặp dấu []
cũng được). Ví dụ bên dưới là tạo một biến hứng mảng.
Kết quả bạn có như sau:
Và bạn thấy, chúng ta có một mảng có 4 giá trị (array(4)
). Trong đó nó có 4 key đánh số từ [0]
đến [3]
cho 4 giá trị tương ứng. Mỗi giá trị bên trong nó sẽ hiển thị kèm theo tên kiểu dữ liệu. Như vậy bạn có thể hiểu, WordPress, CSS, PHP, Javascript
là giá trị trong mảng $mang
mà ta dump ra. Các key nó sẽ tự động gán khi khởi tạo mảng.
Để lấy giá trị trong mảng như ý muốn của mình, chúng ta sẽ lấy ra bằng cách viết tên biến kèm theo key cần lấy giá trị như sau:
MẢNG KHÔNG TUẦN TỰ
Ở trên bạn đã làm quen với mảng cơ bản, và mặc định khi chúng ta khai báo giá trị vào mảng mà nó tự đánh số thứ tự cho các key bên trong thì ta gọi đó là mảng tuần tự. Nhưng trong nhiều trường hợp chúng ta có mảng quá bự, muốn tự đặt tên key cho dễ nhớ thì ta gọi đó là mảng không tuần tự.
Để khai báo tên key kèm giá trị, chúng ta chỉ việc viết giá trị là ‘tên_key' => 'giá_trị'
vào mảng.
Tên key có thể là dữ liệu kiểu chuỗi, kiểu số tự nhiên, số trôi nổi, dữ liệu mảng.
MẢNG ĐA CHIỀU
Mảng đa chiều chỉ đơn giản là một mảng chứa nhiều giá trị mảng lồng bên trong, tức là nó vẫn có key nhưng giá trị lại là một mảng mới. Ví dụ:
Và để lấy giá trị của mảng đa chiều, bạn có thể sử dụng vòng lặp (chưa học tới) hoặc viết tên biến kèm theo tên key của mảng mẹ và tên key của mảng con như $web['php']['mt']
.
Tips: Đối với mảng, bạn có thể dùng hàm print_r() để dump thay vì sử dụng hàm var_dump() nếu không cần xem loại kiểu dữ liệu của giá trị.
CÁC HÀM LÀM VIỆC VỚI MẢNG TRONG PHP
Khi làm việc với mảng, bạn có thể sẽ cần sử dụng một số hàm có sẵn trong PHP để thao tác với mảng. Dưới đây là một số hàm thông dụng để làm việc với mảng.
Xem thêm: Danh sách các hàm làm việc với mảng
sizeof( $arr )
Hàm sizeof()
được sử dụng để in ra tổng số phần tử có bên trong một mảng. Lưu ý là nó không thể đếm được toàn bộ phần tử trong mảng đa chiều.
array_values( $arr )
Hàm array_values()
sẽ rất có ích nếu như bạn muốn tạo ra một mảng mới và mảng mới này sẽ chứa toàn bộ giá trị của mảng được sử dụng trong hàm này.
array_keys( $arr )
Nếu như hàm array_values()
sẽ bóc toàn bộ giá trị trong mảng bỏ vào một mảng mới thì hàm array_keys()
sẽ bóc toàn bộ key trong mảng bỏ vào một mảng mới.
each( $arr )
Đây là một hàm mà nó thường dùng kèm với vòng lặp (thường là vòng lặp while
) để in ra một cặp key và giá trị của nó. Thực ra cái này cũng không thường được sử dụng cho lắm nhưng mà nó có thể giúp bạn sử dụng cùng lúc cả key và giá trị linh hoạt.
array_reverse( $arr )
Hàm này được sử dụng để đảo ngược thứ tự giá trị trong mảng.
array_merge( $arr1, $arr2,… )
Hàm này được sử dụng để gộp các dữ liệu của hai hoặc nhiều mảng lại với nhau.
join( $spec, $arr )
Hàm này có tác dụng sẽ lấy toàn bộ giá trị trong mảng và có thể cách nhau bằng một ký tự nhất định. Ví dụ dưới đây là lấy toàn bộ giá trị ra ngoài và cách nhau bởi dấu phẩy.
Ngoài ra hàm này còn có một cái tên khác nữa đó là implode()
.
Các hàm sắp xếp mảng
Nếu bạn cần thiết lập lại thứ tự các giá trị bên trong mảng thì có thể sử dụng các hàm sau đây:
sort()
– Xếp mảng theo thứ tự tăng dần.rsort()
– Xếp mảng theo thứ tự giảm dần.asort()
– Xếp mảng theo thứ tự tăng dần, dựa vào giá trị.ksort()
– Xếp mảng theo thứ tự tăng dần, dựa vào key.arsort()
– Xếp mảng theo thứ tự giảm dần, dựa vào giá trị.krsort()
– Xếp mảng theo thứ tự giảm dần, dựa vào key.
BÀI TẬP THỰC HÀNH
Tạo ra một mảng với biến tên là
my_post
.Trong mảng đó sẽ có 5 key tên (giá trị tự đặt) theo yêu cầu Kiểu – tên key – giá trị như sau:
String – title – Học PHP cơ bản
String – content – Đây là nội dung của bài học PHP cơ bản
Array – tag – php,php cơ bản
Array – category – PHP, WordPress
String – author – Thạch Phạm
Hiển thị giá trị của các key ra ngoài website (nên định dạng bằng HTML cho dễ đọc).
Bài giải
Last updated