Xin chào!
Hôm nay Hocweb.com.vn xin tiếp tục bài 5 hướng dẫn mảng một chiều
trong php. Trong bài viết này sẽ đề cập đến cách đếm số phần tử, ghép 2
hoặc nhiều mảng một chiều lại thành một mảng và sắp xếp mảng.
TRANG HTML
Việc đầu tiên chúng ta sẽ tạo cấu trúc trang HTML hoàn chỉnh.
<!DOCTYPE html>
<html>
<head>
<title>ĐẾM PHẦN TỬ, GHÉP MẢNG VÀ SẮP XẾP</title>
<meta charset="utf-8">
<style>
*{
font-family: Tahoma;
}
table{
width: 400px;
margin: 100px auto;
}
table th{
background: #66CCFF;
padding: 10px;
font-size: 18px;
}
input{
width: 100%;
}
</style>
</head>
<body>
<form action="3-9.php"
method="POST">
<table>
<thead>
<tr>
<th
colspan="2">ĐẾM PHẦN TỬ, GHÉP MẢNG VÀ SẮP XẾP</th>
</tr>
</thead>
<tbody>
<tr>
<td>Mảng
A:</td>
<td><input
type="text" name="nhap_mang_a" value="<?php echo
$_POST['nhap_mang_a']; ?>" ></td>
</tr>
<tr>
<td>Mảng
B:</td>
<td><input
type="text" name="nhap_mang_b" value="<?php echo
$_POST['nhap_mang_b']; ?>" ></td>
</tr>
<tr>
<td></td>
<td><input
type="submit" value="Thực hiện"></td>
</tr>
<tr>
<td>Số
phần tử mảng A:</td>
<td><input
type="text" value="<?php echo count($mang_a); ?>"
disabled="disabled"></td>
</tr>
<tr>
<td>Số
phần tử mảng B:</td>
<td><input
type="text" value="<?php echo count($mang_b); ?>"
disabled="disabled"></td>
</tr>
<tr>
<td>Mảng
C:</td>
<td><input
type="text" value="<?php echo implode(", ",
$mang_c); ?>" disabled="disabled"></td>
</tr>
<tr>
<td>Mảng
C tăng dần:</td>
<td><input
type="text" value="<?php sap_xep_tang($mang_c); ?>"
disabled="disabled"></td>
</tr>
<tr>
<td>Mảng
C giảm dần:</td>
<td><input
type="text" value="<?php sap_xep_giam($mang_c); ?>"
disabled="disabled"></td>
</tr>
</tbody>
</table>
</form>
</body>
</html>
|
|
|
Như các bạn thấy trong đoạn code HTML, chúng ta đã đưa vào các lệnh PHP.
<?php echo count($mang_a); ?>
|
|
|
Hàm
count($array); dùng để đếm số phần tử của mảng.
Trang HTML hoàn chỉnh
LẬP TRÌNH PHP
Đầu tiên chúng ta sẽ khai báo các biến cần thiết là các mảng mà chúng ta sắp tạo ra bằng cách lấy dữ liệu từ form
$mang_a = array();
$mang_b = array();
$mang_c = array();
|
|
|
Hàm tạo mảng tao_mang($nhap_mang) sẽ trả về một mảng sau khi tách chuỗi $nhap_mang thành một mảng.
function tao_mang($nhap_mang){
$mang = explode(",", $nhap_mang);
return $mang;
}
|
|
|
Hoặc chúng ta có thể viết gọn lại hàm tao_mang($nhap_mang) như sau
function tao_mang($nhap_mang){
return explode(",", $nhap_mang);
}
|
|
|
Tiếp theo chúng ta xây dựng hàm sap_xep_tang($mang) sẽ sắp xếp mảng tăng dần và in ra mảng đã sắp xếp
function sap_xep_tang($mang){
if(isset($mang[0])){
sort($mang);
echo implode(",
", $mang);
}
}
|
|
|
Hàm
sort($array); dùng để sắp xếp
indexed array tăng dần
Hàm sap_xep_giam($mang) tương tự hàm sap_xep_tang($mang) nhưng chúng ta sẽ sử dụng hàm rsort($array) để sắp xếp giảm.
function sap_xep_giam($mang){
if(isset($mang[0])){
rsort($mang);
echo implode(",
", $mang);
}
}
|
|
|
Sau khi đã khai báo biến và tạo các hàm, chúng ta kiểm tra xem người
dùng đã nhập mảng vào form chưa để tiến hành cắt chuỗi tạo mảng, sắp
xếp.
if(isset($_POST['nhap_mang_a']) && isset($_POST['nhap_mang_b'])){
$mang_a = tao_mang($_POST['nhap_mang_a']);
$mang_b = tao_mang($_POST['nhap_mang_b']);
$mang_c = array_merge($mang_a,$mang_b);
}
|
|
|
Hàm
array_merge($arr1, $arr2, …, $arr_n); dùng để gộp 2 hay nhiều mảng lại với nhau và trả về mảng đã ghép.
CHẠY THỬ TRÊN LOCALHOST
Mở trình duyệt và duyệt trang, nhập thử như dữ liệu mẫu và bấm nút Thực hiện
Dữ liệu mẫu Test
Chúc các bạn thành công.
(Còn tiếp…)
Xem thêm tại
http://hocweb.com.vn/category/hocweb/php-mysql/php-co-ban/page/2/
----------------------------------------------------------------------------------------------------------------------------------------------------------
Nếu bạn thấy bài viết hữu ích, hãy nhấn +1 và các liên kết chia sẻ để
website ngày càng phát triển hơn. Xin cám ơn bạn!
Đăng nhận xét