25. Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQL
“cr” => “Costa Rica”,
“de” => “Germany”,
“uk” => “United Kingdom”,
“us” => “United States”);
25
26. Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQL
b. Lµm viÖc víi c¸c phÇn tö cña m¶ng
Cã thÓ sö dông vßng lÆp for xÐt tõng phÇn tö cña m¶ng.
$countries = array (“cr”, “de”, “us”);
$num_elements = count($countries);
for ($i = 0 ; $i < $num_elements ; $i ++) {
echo (“$countries[$i] <BR>n”);
}
VÝ dô trªn sÏ ®óng khi chØ sè cña c¸c phÇn tö t¨ng dÇn ®Òu. NÕu chØ sè
c¸c phÇn tö kh«ng theo mét thø tù nµo c¶ ta cã thÓ sö dông hµm list() vµ
each().
reset ($countries);
while (list ($key, $value ) = each ($countries)) {
echo (“ChØ sè $key, gi¸ trÞ $value”);
}
§Ó di chuyÓn con trá tíi phÇn tö tiÕp theo hoÆc tr−íc ®ã ta còng cã thÓ
dïng hµm next() - hµm next() tr¶ vÒ lµ 1 (true) nÕu phÇn tö tiÕp theo
kh«ng ph¶i lµ phÇn tö cuèi cïng, ng−îc l¹i lµ 0 (false) vµ prev() - hµm
prev() cho gi¸ trÞ tr¶ vÒ lµ 1 (true) nÕu phÇn tö tiÕp theo kh«ng ph¶i lµ
phÇn tö ®Çu tiªn, ng−îc l¹i lµ 0 (false). Hµm key () sÏ cho biÕt chØ sè vµ
hµm current() sÏ cho biÕt gi¸ trÞ cña phÇn tö ®ã .
$arr = array (3, 4, 5, 6, 7);
do {
$k = key ($arr);
$val = current ($arr);
echo (“PhÇn tö $k = $val”);
}while
2. M¶ng hai chiÒu
Chóng ta cã thÓ khai b¸o m¶ng hai chiÒu nh− sau :
26
27. Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQL
$countries = array (“Europs” => array (“de”, “uk”),
“North America” => array (“ca”, “cr”, “us”));
echo ($countries[“Europs”][1]); // print “uk”
echo ($countries[“North America”][2]); // print “us”
Ta cã cÊu tróc cña m¶ng trªn nh− sau :
$countries[“Europs”] $countries[“North America”]
[0] [1] [0] [1] [2]
“de” “uk” “ca” “cr” “us”
Còng gièng nh− m¶ng mét chiÒu ta sÏ dïng vßng lÆp nh− for, while, do
... while ®Ó duyÖt qua c¸c phÇn tö cña m¶ng.
VÝ dô :
$countries = array (“Europs” => array (“de”, “uk”),
“North America” => array (“ca”, “cr”, “us”));
while (list ($key1) = each ($countries)) {
echo (“$key1 : <BR>n”);
while (list ($key2, $val) = each($countries[“$key1”])) {
echo (“ - $val <BR>n”)
}
}
Khi ch¹y ch−¬ng tr×nh sÏ in ra mµn h×nh lµ :
Europ :
- de
- uk
North America :
- ca
- cr
- us
27
28. Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQL
3. C¸c hµm s¾p xÕp m¶ng .
PHP cung cÊp cho chóng ta c¸c hµm ®Ó s¾p xÕp m¶ng. Víi mçi lo¹i
m¶ng sÏ cã mét hµm t−¬ng øng. Víi m¶ng cã chØ sè lµ kiÓu nguyªn chóng ta
cã hµm sort() ®Ó s¾p xÕp t¨ng dÇn c¸c phÇn tö cña m¶ng, hµm rsort() sÏ s¾p
xÕp c¸c phÇn tö cña m¶ng gi¶m dÇn .
$countries = array (“us”, “uk”, “ca”, “cr”, “de”);
sort ($countries);
while (list ($key, $val) = each ($countries)) {
echo (“Element $key equals $val <BR>n”);
}
Khi ch¹y ch−¬ng tr×nh sÏ lµ :
Element 0 equals ca
Element 1 equals cr
Element 2 equals de
Element 3 equals uk
Element 4 equals us
Víi m¶ng chØ sè cã kiÓu string th× dïng hµm asort (), arsort () ®Ó s¾p
xÕp m¶ng theo chiÒu t¨ng dÇn vµ gi¶m dÇn. NÕu b¹n dïng c¸c hµm sort() vµ
rsort() th× c¸c chØ sè cã kiÓu string sÏ chuyÓn thµnh c¸c chØ sè cã kiÓu
nguyªn.
$countries = array(“us” => “United States”,
“uk” => “United Kingdom”,
“ca” => “Canada”,
“cr” => “Costa Rica”,
“de” => “Germany”);
asort ($countries);
while (list($key, $val) = each($countries)) {
echo “Chi so $key bang $val <BR>n”;
28
29. Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQL
}
KÕt qu¶ khi ch¹y ch−¬ng tr×nh :
Chi so ca bang Canada
Chi so cr bang Costa Rica
Chi so de bang Germany
Chi so uk bang United Kingdom
Chi so us bang United States
Nh−ng nÕu thay dßng asort ($countries); b»ng sort ($countries); kÕt
qu¶ sÏ lµ
Chi so 0 bang Canada
Chi so 1 bang Costa Rica
Chi so 2 bang Germany
Chi so 3 bang United Kingdom
Chi so 4 bang United States
§Ó s¾p xÕp m¶ng t¨ng dÇn hay gi¶m dÇn theo chØ sè chóng ta cã hµm
ksort() – t¨ng dÇn vµ krsort() – gi¶m dÇn .
$countries = array(“e” => “United States”,
“d” => “United Kingdom”,
“c” => “Canada”,
“b” => “Costa Rica”,
“a” => “Germany”);
ksort ($countries);
while (list($key, $val) = each($countries)) {
echo “Chi so $key bang $val <BR>n”;
}
KÕt qu¶ :
Chi so a bang Germany
29