Khái niệm mảng trong PHP và các hàm xử lý mảng
Bài trước chúng ta đã Tìm hiểu Cookies và Session trong PHP còn ở bài này chúng ta sẽ tìm hiểu về mảng và các hàm hổ trợ trong PHP. Cũng như những ngôn ngữ lập trình khác. Trong PHP hỗ …
Bài trước chúng ta đã Tìm hiểu Cookies và Session trong PHP còn ở bài này chúng ta sẽ tìm hiểu về mảng và các hàm hổ trợ trong PHP. Cũng như những ngôn ngữ lập trình khác. Trong PHP hỗ trợ một kiểu dữ liệu là dữ liệu kiểu mảng. Mảng hay còn gọi là ARRAY. Mảng là một biến là biến danh sách. Nghĩa là thay vì một biến chỉ có thể lưu trữ được một giá trị thì với mảng một biến có thể lưu được nhiều giá trị trong một biến.
Chúng ta có thể tạo 1 mãng với các phần tử không đồng nhất về mặt dữ liệu. Đây là một ưu điểm của PHP so với các loại ngôn ngữ khác như C++ hay Java.
Cấu trúc của một mảng bao gồm khóa và giá trị. Để làm việc được với mảng ta phải sử dụng các hàm xử lý mảng.
1. Khởi tạo mảng trong php:
Để khởi tạo mảng trong php ta sử dụng cú pháp sau
$bien = array(“gia_tri_1″,”gia_tri_2″,”gia_tri_3″,…,”gia_tri_n”);
- Các giá trị trong mảng cách nhau bởi dấu phảy “,”
- Các giá trị của mảng có thể là kiểu string, kiểu số, kiểu mảng
Ngoài cách khai báo ở trên chúng ta cũng có thể khai báo bằng cách khác như sau:
$tên_biến[] = “Hoàng Minh”;
$tên_biến[] = “Lê Nam”;
$tên_biến[] = “Ngọc Ngà”;
$tên_biến[] = “Lam Anh”
Chúng ta không cần thêm ký tự vào. Vì PHP đã tự xử lý cho chúng ta phần đó.
Để thêm 1 phần tử vào mảng chúng ta cũng có thể sử dụng như sau:
$tên_biến[] = “Hà Nhân”;
Như vậy nếu chúng ta gọi giá trị: echo $tên_biến[4] thì giá trị sẽ là Hà Nhân. Vì nó được PHP thêm vào sau cùng và ngầm hiểu là giá trị tiếp theo.
Ví dụ:
1 2 3 4 | <?php $sinhvien=array('Hoàng Minh','Lê Nam','Ngọc Ngà','Lam Anh','Hà Nhân'); echo$sinhvien[3];// Giá trị chúng ta sẽ lấy được là Lam Anh ?> |
Trong một số trường hợp chúng ta muốn xem cấu trúc của mảng ta sử dụng hai lệnh sau: print_r hoặc var_dump
Ví dụ:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php $demo=array('Thứ 2','Thứ 3','Thứ 4','Thứ 5','Thứ 6','Thứ 7','Chủ nhật'); echo"<pre>"; print_r($demo); echo"</pre>"; //Kết quả ta được Array( [0]=>Thứ2 [1]=>Thứ3 [2]=>Thứ4 [3]=>Thứ5 [4]=>Thứ6 [5]=>Thứ7 [6]=>Chủnhật ) ?> |
Lưu ý: Với hàm print_r ta nên dùng thêm cặp thẻ <pre>:
1 2 3 4 5 | <?php echo"<pre>"; print_r($array); echo"</pre>"; ?> |
2. Đếm số phần tử trong mảng:
Để đếm số phần tử của mãng ta dùng hàm count(), như ví dụ ở trên nếu ta ghi
Ví dụ:
1 2 3 4 | <?php $sinhvien=array('Hoàng Minh','Lê Nam','Ngọc Ngà','Lam Anh','Hà Nhân'); echocount($sinhvien); ?> |
3. Khái niệm mảng kết hợp trong PHP:
Là các mảng được tạo index bằng các chuỗi , chúng được gợi là các mảng kết hợp.
1 2 3 | <?php $sinhvien=array(name=>"Nam Hoàng",job=>"Sinh Viên",age=>"20",email=>"namhoang@gmail.com") ?> |
Như vậy để truy cập giá trị của mảng trên chúng ta không thể sử dụng cách cũ được.
Ví dụ: Để lấy giá trị của tuổi tôi không thể sử dụng cách trên : echo $sinhvien[1].
Vì chúng ta đã gán giá trị của index cho một tên gọi khác. Do vậy để lấy nghề nghiệp của Nam Hoàng ta sử dụng như sau: echo $sinhvien[job] // Kết quả sẽ cho ra Sinh Viên.
1 2 3 4 | <?php $sinhvien=array(name=>"Nam Hoàng",job=>"Sinh Viên",age=>"20",email=>"namhoang@gmail.com") echo$sinhvien[job]; ?> |
4. Phép lặp trong mảng:
Cú pháp:
foreach($array as $temp)
{ Hành Động }
Trong đó $array là mảng mà ta muốn thực thi việc lặp dữ liệu, và $temp là một biến trong đó ta sẽ tạm thời lưu trữ mỗi phần tử.
Ví dụ:
1 2 3 4 5 6 7 | <?php $sinhvien=array('Hoàng Minh','Lê Nam','Ngọc Ngà','Lam Anh','Hà Nhân'); foreach($sinhvienas$test) { echo"$test<br>"; } ?> |
Lặp lại qua một mảng kết hợp:
Cú pháp:
Foreach($array as $key=>$value)
{ Hành Động }
Trong đó $array là mảng mà ta muốn thực thi việc lặp dữ liệu, $key là một biến vốn tạm thời chứa mỗi khóa, và $value là một biến vốn tạm thời chữa mỗi giá trị.
Ví dụ:
1 2 3 4 5 6 7 | <?php $sinhvien=array(name=>"Nam Hoàng",job=>"Sinh Viên",age=>"20",email=>"namhoang@gmail.com") foreach($sinhvienas$key=>$test) { echo"Key: $key. Value: $test<br>"; } ?> |
5. Các hàm xử lý mảng:
1. print_r ($array)
Được dùng để xem cấu trúc của mảng
2. count ($array)
Trả về giá trị kiểu số nguyên là số phần tử của mảng
3. array_values ($array)
Trả về một mảng liên tục có các phần tử có giá trị là giá trị lấy từ các phần tử của mảng $array
4. array_keys ($array)
Trả về một mảng liên tục có các phần tử có giá trị là khóa lấy từ các phần tử của mảng $array.
5. array_pop ($array)
Loại bỏ phần tử cuối cùng của mảng. Hàm trả về phần tử cuối cùng đã được loại bỏ.
6. array_push ($array, $val1, $val2, … , $valn)
Thêm một hoặc nhiều phần tử vào cuối mảng $array. Hàm trả về kiểu số nguyên là số lượng phần tử của mảng $array mới
7. array_shift ($array)
Loại bỏ phần tử đầu tiên của mảng. Hàm trả về phần tử đầu tiên đã được loại bỏ.
8. array_unshift ($array, $val1, $val2, … , $valn)
Thêm một hoặc nhiều phần tử vào đầu mảng $array. Hàm trả về kiểu số nguyên là số lượng phần tử của mảng $array mới
9. array_flip ($array)
Trả về một mảng có khóa và giá trị được hoán đổi cho nhau so với mảng $array (giá trị thành khóa và khóa thành giá trị)
10. sort ($array)
Sắp xếp mảng $array theo giá trị tăng dần
11. array_reverse ($array)
Đảo ngược vị trí các phần tử của mảng
12. array_merge ($array1, $array2, …, $arrayn)
Nhập 2 hay nhiều mảng thành một mảng duy nhất và trả về mảng mới
13. array_rand ($array, $number)
Lấy ngâu nhiên $number phần tử từ mảng $array và đưa vào màng mới (lấy giá trị khóa)
14. array_search ($value,$array)
Tìm phần tử mang giá trị $value trong mảng $array. Trả về khóa của phần tử tìm được.
15. array_slice ($array, $begin. $finish)
Trích lấy 1 đoạn phần tử của mảng $array từ vị trí $begin đến vị trí $finish. Phần tư đầu tiên (chỉ số 0), phần tử cuối cùng (chỉ số -1 hay count($array) – 1)
16. array_unique ($array)
Loại bỏ những phần tử trùng nhau trong mảng và trả về mảng mới
17. implode ($str, $array)
Chuyển các giá trị của mảng $array thành một chuỗi bao gồm các phần tử cách nhau bởi ký tự $str
18. explode ($delimiter, $str)
Chuyển một chuỗi thành một mảng. Tách chuỗi dựa vào $delimiter, mỗi đoàn tách ra sẽ thành một phần tử của mảng mới
19. serialize ($value)
Chuyển chuỗi/mảng/đối tượng $value thành một chuỗi đặc biệt để lưu vào cơ sở dữ liệu
20. unserialize ($value)
Chuyển chuỗi đặc biệt được tạo từ serialize($value) về trạng thái ban đầu
21. array_key_exists ($key, $array)
Kiểm tra khóa $key có tồn tại trong mảng $array hay không? Nếu có trả về giá trị true.
22. in_array ($value, $array)
Kiểm tra giá trị $value có tồn tại trong mảng $array hay không? Nếu có trả về giá trị true.
23. array_diff ($array1, $array2)
Trả về một mảng bao gồm các phần tử có giá trị tồn tại trong mảng $array1 nhưng không tồn tại trong mảng $array2
24. array_diff_assoc ($array1, $array2)
Trả về một mảng bao gồm các phần tử có khóa tồn tại trong mảng $array1 nhưng không tồn tại trong mảng $array2
25. array_intersect ($array1, $array2)
Trả về một mảng bao gồm các phần tử giống nhau về giá trị giữa 2 mảng $array1 và $array2
26. array_intersect_assoc ($array1, $array2)
Trả về một mảng bao gồm các phần tử giống nhau về khóa và giá trị giữa 2 mảng $array1 và $array2
27. array_combine ($keys, $values)
Tạo một mảng mới có khóa được lấy từ mảng $keys và giá trị được lấy từ mảng $values theo tuần tự (Yêu cầu số phần tử ở 2 mảng phải bằng nhau)
Tóm lại: Qua bài học này, chúng ta tìm hiểu kỹ về các thành phần của mảng một chiều, nhiều chiều và các hàm cơ bản vể xử lý dữ liệu. Hiểu rõ cấu trúc mảng, sự sắp xếp đồng bộ sẽ giúp ích cho các bạn rất nhiều trong những ứng dụng lớn.
Category: Lập trình PHP, php căn bản
0 comments