Thứ Ba, 29 tháng 3, 2016

Mảng (PHP)


Mảng là một danh sách chứa thông tin với khóa và được lưu trữ với một tên biến. Một mảng có dòng thông tin và khóa, khóa là cột đầu tiên trong bảng. Khóa phải đồng nhất để dễ tổ chức và sử dụng_đào tạo thiết kế web

1.       Cú pháp của mảng.

1.1.        Mảng một chiều

<?php
$husband = array("firstname"=>"Albert",
"lastname"=>",instein",
"age"=>"124");
echo $husband[firstname];
?>
Kết quả xuất ra màn hình 1

Chú ý: Sử dụng => để thay cho dấu bằng, khi ấn định những giá trị đến khóa của mảng. Điều này cho bạn xuất ra “Albert” và tất cả giá trị vẫn được lưu trữ trong biến $husband.
Bạn cũng có thể đặt một mảng giá trị theo cách sau:
$husband[“firstname”] = “Albert”;
$husband[“lastname”] = “Einstein”;
$husband[“age”] = 124;

1.2.        Mảng đa chiều:

Ví dụ:
            <?php
$table1 = array(“husband” => array(“firstname”=>”Albert”,
“lastname”=>”Einstein”,
“age”=>124),
“wife” => array(“firstname”=>”Mileva”,
“lastname”=>”Einstein”,
“age”=>123));
//do the same for each table in your restaurant
?>
Nếu muốn xuất firstname của mọi người, ta dùng hàm xuất như sau:
            <?php
echo $table1[“husband”][“firstname”];
echo “ & “;
echo $table1[“wife”][“firstname”];?>
Kết quả Hình 2.
mang

Để đơn giản ta có thể dùng một cách khác để lưu trữ mảng như sau:
            <?php
$flavor[] = “blue raspberry”;
$flavor[] = “root beer”;
$flavor[] = “pineapple”;
?>
Để xuất thông tin ra ta thực hiện câu lệnh như sau:
echo $flavor[0]; //xuất “blue raspberry”
echo $flavor[1]; // xuất “root beer”
echo $flavor[2]; // xuất “pineapple”

2.       Sắp xếp mảng

PHP cung cấp nhiều cách để lưu trữ giá trị của mảng,  sau đây là mô tả  một vài hàm sắp xếp trong mảng.
arsort(array) :Sắp xếp một mảng giảm theo giá trị và duy trì quan hệ của khóa/ giá trị
asort(array): Sắp xếp một mảng tăng theo giá trị và duy trì quan hệ của khóa/ giá trị
rsort(array): Sắp xếp một mảng giảm theo giá trị
sort(array): Sắp xếp một mảng tăng theo giá trị
Ví dụ:
                        <?php
$flavor[] = "blue raspberry";
$flavor[] = "root beer";
$flavor[] = "pineapple";
sort($flavor);
print_r($flavor);
?>
Kết quả như Hình 3


Chú ý:

Ở đây dùng hàm mới prinf_r, chức năng của hàm này là xuất thông tin về một biến mà người ta có thể đọc nó dễ dàng. Nó thường được dùng để kiểm tra giá trị của mảng, một cách cụ thể.
Ở đây hàm sort dùng để sắp xếp theo thứ tự Alpha

       3.       Cấu trúc Foreach 

Ví dụ:
                        <?php
$flavor[] = "blue raspberry";
$flavor[] = "root beer";
$flavor[] = "pineapple";
echo "My favorite flavors are:<br>";
foreach ($flavor as $currentvalue) {
//these lines will execute as long as there is a value in $flavor
echo $currentvalue . "<br>\n";
}
?>
Kết quả như Hình 4


Khi PHP xử lý trong mảng. Nó giữ vị trí của các khóa bằng cách sử dụng con trỏ trong mảng.
Khi hàm foreach được gọi con trỏ chờ giá trị đầu tiên trong mảng. Cuối hàm con trỏ chuyển xuống khóa  cuối cùng trong mảng. Vị trí của con trỏ có thể là công cụ trợ giúp.
Ví dụ:
1/ Thay đổi moviesite như sau:
<?php
session_start();
//kiểm tra username và password
if ($_SESSION['authuser'] != 1) {
echo "Sorry, but you don't have permission to view this
page, you loser!";
exit();
}
?>
<html>
<head>
<title>My Movie Site</title>
</head>
<body>
<?php include "header.php"; ?>
<?php
$favmovies = array("Life of Brian",
"Stripes",
"Office Space",
"The Holy Grail",
"Matrix",
"Terminator 2",
"Star Wars",
"Close Encounters of the Third Kind",
"Sixteen Candles",
"Caddyshack");
/*/delete these lines:
function listmovies_1()
{
echo "1. Life of Brian<br>";
echo "2. Stripes<br>";
echo "3. Office Space<br>";
echo "4. The Holy Grail<br>";
echo "5. Matrix<br>";
}
function listmovies_2()
{
echo "6. Terminator 2<br>";
echo "7. Star Wars<br>";
echo "8. Close Encounters of the Third Kind<br>";
echo "9. Sixteen Candles<br>";
echo "10. Caddyshack<br>";
}
//kết thúc dòng xóa*/
if (isset($_REQUEST['favmovie']))
 {
echo "Welcome to our site, ";
echo $_SESSION['username'];
echo "! <br>";
echo "My favorite movie is ";
echo $_REQUEST['favmovie'];
echo "<br>";
$movierate = 5;
echo "My movie rating for this movie is: ";
echo $movierate;
} else
{
echo "My top 10 movies are:<br>";
if (isset($_REQUEST['sorted']))
{
sort($favmovies);
}
/*/delete these lines
echo $_REQUEST['movienum'];
echo " movies are:";
echo "<br>";
listmovies_1();
if ($_REQUEST['movienum'] == 10) listmovies_2();
//end of deleted lines*/
foreach ($favmovies as $currentvalue)
{
echo $currentvalue;
echo "<br>\n";
}
}
?>
</body>
</html>

2/ Thay đổi movie1.php như sau:
<?php
session_start();
$_SESSION['username'] = $_POST['user'];
$_SESSION['userpass'] = $_POST['pass'];
$_SESSION['authuser'] = 0;
// kiểm tra username và password
if (($_SESSION['username'] == 'Joe') and
($_SESSION['userpass'] == '12345'))
{
$_SESSION['authuser'] = 1;
} else {
echo "Sorry, but you don't have permission to view this
page, you loser!";
exit();
}
?>
<html>
<head>
<title>Find my Favorite Movie!</title>
</head>
<body>
<?php include "header.php"; ?>
<?php
$myfavmovie = urlencode("Life of Brian");
echo "<a href='moviesite.php?favmovie=$myfavmovie'>";
echo "Click here to see information about my favorite movie!";
echo "</a>";
echo "<br>";
/*/delete these lines
echo "<a href='moviesite.php?movienum=5'>";
echo "Click here to see my top 5 movies.";
echo "</a>";
echo "<br>";
//end of deleted lines*/
//change the following line:
echo "<a href='moviesite.php'>";
echo "Click here to see my top 10 movies.";
echo "</a>";
echo "<br>";
echo "<a href='moviesite.php?sorted=true'>";
echo "Click here to see my top 10 movies, sorted alphabetically.";
echo "</a>";
?>
</body>
</html>

3/ Cho chạy login.php và click vào dòng

Bạn sẽ thấy kết quả như hình 5



Quay lại file movie1.php click vào:
Bạn sẽ thấy kết quả như sau như hình 6

Ở đây đã có sự sắp xếp theo thứ tự alpha
Cách thức hoạt động :
Trước tiên bạn đặt danh sách động trong biến, $favmovies với mảng. Sau đó bạn có thể để danh sách movie từng cái một bằng cách sử dụng foreach trong file moviesite.php. Bạn cũng có thể thêm một liên kết để người sử dụng sắp xếp danh sách theo alphabel bằng cách dùng biến có tên $_REQUEST[sorted].
Khi biến này là true thì hàm sort() được thực thi và bạn truyền biến true qua URL trong liên kết.
Các bạn có thể tìm đọc thêm tài liệu trong mục học lập trình PHP để bổ sung thêm kiến thức


0 nhận xét:

Đăng nhận xét