วันศุกร์ที่ 9 สิงหาคม พ.ศ. 2556

เรียนรู้เกี่ยวกับ Array และการใช้งาน

เรียนรู้เกี่ยวกับ Array และการใช้งาน

อะเรย์ (Array)
- อะเรย์หรือตัวแปรชุดคือตัวแปรที่สามารถเก็บค่าได้หลายๆค่า โดยใช้ตัวแปรตัวเดียว
- สิ่งที่อยู่ภายในอะเรย์เรียกว่าสมาชิก
- แต่ละสมาชิกในอะเรย์จะมีอินเด็กซ์เพื่อใช้อ้างอิง
- ใน PHP อินเด็กซ์จะเริ่มที่ 0 แต่สามารถกำหนดอินเด็กซ์ให้เป็นตัวอักษรได้

<html>
<body>
<?php
$arr[0] = "Red";
$arr[1] = "Green";
$arr[2] = "Blue";
$arr[3] = "White";
echo " $arr[0] , $arr[1] ,$arr[2] ,$arr[3] ";
?>
</body>
</html>

ข้อมูลแต่ละตัวในอะเรย์ไม่จำเป็น ต้องเป็นข้อมูลชนิดเดียวกัน เช่น อาจจะมีทัง้จำนวนเต็ม เลขทศนิยม ตัวอักษร
<?php
$arr[0] = "Chair";
$arr[1] = 20;
$arr[2] = 3.37;
$arr[3] = "A";
$all = count( $arr );
for ($i=0; $i < $all; $i++){
print "Member $i = $arr[$i] <BR>";
}
?>

ใน PHP อะเรย์ที่มีขนาดเปลี่ยนแปลงได้เรียกว่า dynamic arrayหรือ vector(สำหรับอะเรย์มิติเดียว)
- ไม่จำเป็นต้องประกาศตัวแปร
- ค่าของอะเรย์จะ ถูกกำหนดให้ตอนที่ โปรแกรมทำงาน (Run time)
<?php
$myarray[]=3;
$myarray[]=1.1;
$myarray[]="abc";
$all = count( $myarray);
for ($i=0; $i < $all; $i++){
print "Member $i = $myarray[$i] <BR>";
}
?>

ตัวอย่างการสร้างอะเรย์โดยใช้ฟังก์ชัน array และการเปรียบเทียบการใช้ For และ Foreach
<?php
$myarray = array( 5,6,7, 20,31,440,”PHP”,”GNA” );
$all = count( $myarray);
for ($i=0; $i < $all; $i++){
print "Member $i = $myarray[$i] <BR>";
}
foreach ($myarray as $myvalue) {
print "$myvalue <BR>";
}
?>

ตัวอย่างการสร้างอะเรย์โดยใช้ฟังก์ชัน array range(int low, int high)
<?php
$arr = range( 5,10);
$all = count( $arr );
for ($i=0; $i<$all; $i++){
echo "arr[" .$i. "] = ";
echo $arr[$i] . "<BR>" ;
}
?>

การนำข้อมูลจาก Text file มาเก็บไว้ใน Array
- ข้อมูลที่เก็บในแต่ละบรรทัดคือ ข้อมูลในแต่ละ Element
<?php
$des = file("test.php");
$count_des = count($des);
if($count_des==0) {
echo "ไม่มีข้อมูลใน File <br>";
}
for ($i=0; $i<$count_des; $i++) {
echo $des[$i] . "<br>";
}
?>

จากตัวอย่างที่แล้ว หากเราต้องการแสดงข้อความให้ถูกต้อง จำเป็นต้อง Convert SpecialCharacter ก่อนการ Display HTML โดยใช้ Function htmlspecialchars
<?php
$des = file("test.php");
$count_des = count($des);
if($count_des==0) {
echo htmlspecialchars("ไม่มีข้อมูลใน File <br>");
}
for ($i=0; $i<$count_des; $i++) {
echo htmlspecialchars($des[$i]) . "<br>";
}
?>

การใช้อะเรย์หลายมิติ(Multidimensional Array)
- กำหนดชื่อตัวแปรแล้วตามด้วยเครื่อง [..][..] สำหรับอะเรย์สองมิติและ [..][..][..]
สำหรับอะเรย์สามมิติ
$arr_2[1][1] = 4000; //$arr_2 เป็นอะเรย์สองมิติ
$arr_3[1][1][1] = 2000; //$arr_3 เป็นอะเรย์สามมิติ
<?php
$dim = 4;
for ($row=0; $row <= $dim; $row++) {
for($column = 0; $column <= $dim; $column++) {
$myarray[$row][$column] = 4 * $row * $column;
echo "4 x $row x $column = " . $myarray[$row][$column] . "<br>";
}
echo "<br>";
}
?>

อะเรย์แบบคู่ (Key/Value)
- การเก็บข้อมูลในอะเรย์แบบนีจ้ ะใช้กับข้อมูลที่จัดเก็บเป็นคู่ ๆ
File: lab4-15.php
<?php
$keep_age = array(
“Joe" => 15 ,
“Game" => 18 ,
“Off" => 30 ,
“Champ" => 16 );
$name =key($keep_age);
$age =current($keep_age);
print ("Age of <u>$name</u> is $age");
?>

อะเรย์แบบคู่ (Key/Value) ประเภท 2 มิติ
<?php
$countries = array (
"thailand" => array ( "zone" => "Asia", "D_NAME" => ".th"),
"malasia" => array ( "zone" => "Asia", "D_NAME" => ".my"),
"india" => array ( "zone" => "Asia", "D_NAME" => ".in"),
"holland“ => array ( "zone" => "Europe", "D_NAME" => ".nl"),
"france" => array ( "zone" => "Europe", "D_NAME" => ".fr")
);
echo "domain name=".$countries[ "thailand"]["D_NAME"]."<BR>\n";
?>

ฟังก์ชัน sort
- เป็นฟังก์ชันที่ใช้ในการเรียงลำดับรายการข้อมูลในอะเรย์โดยจัดเรียงข้อมูลจากค่าน้อยไปหาค่ามาก
<?php
$sort = array(50,40,30,35);
sort($sort);
for($r = 0; $r < count($sort);$r++){
echo "$sort[$r] <br>";
}
?>

ฟังก์ชัน asort
- เป็นฟังก์ชันที่ใช้ในการเรียงลำดับรายการข้อมูลในอะเรย์แบบคู่ โดยจัดเรียงข้อมูลของValue จากค่าน้อยไปหาค่ามาก
<?php
$keep_age = array(
“Joe" => 15 ,
“Game" => 18 ,
“Off" => 30 ,
“Champ" => 16 );
asort($keep_age );
foreach ($keep_age as $key => $value) {
echo "$key = $value <br>\n";
}
?>

ฟังก์ชัน ksort
- เป็นฟังก์ชันที่ใช้ในการเรียงลำดับรายการข้อมูลในอะเรย์แบบคู่ โดยจัดเรียงข้อมูลของ Keyจากค่าน้อยไปหาค่ามาก
<?php
$keep_age = array(
“Joe" => 15 ,
“Game" => 18 ,
“Off" => 30 ,
“Champ" => 16 );
ksort($keep_age );
foreach ($keep_age as $key => $value) {
echo "$key = $value <br>\n";
}
?>

ฟังก์ชัน max ใช้ในการหาค่า maximum ของ Value ใน Array
- ฟังก์ชัน min ใช้ในการหาค่า minimum ของ Value ใน Array
- ฟังก์ชัน count ใช้ในการนับจำนวน Array ว่ามีทัง้ หมดเท่าไหร่
<?php
$arr = array( 51,6,7,4,3,2,10,3,70 );
echo max( $arr) ,"<br>";
echo min( $arr) ,"<br>";
echo count( $arr) ,"<br>";
?>

ฟังก์ชัน current ใช้ดึง Value ของ Array ที่ Pointer ชีอ้ ยู่ หากเป็นการ Initialize Arrayตัว Pointer จะอยู่ที่ Array 0
- ฟังก์ชัน next ใช้เลื่อน Pointer ใน Array ไปข้างหน้าจำนวน 1 ช่อง
- ฟังก์ชัน prev ใช้เลื่อน Pointer ใน Array ถอยหลังจำนวน 1 ช่อง
<?php
$arr = array( 51,6,7,4,3,2,10,3,70 );
echo current($arr) ,"<br>";
next ($arr);
echo current($arr) ,"<br>";
prev ($arr);
echo current($arr) ,"<br>";
?>

ฟังก์ชัน each ใช้ดึงค่าของ Array ที่ Pointer ชีอ้ ยู่ แล้วเลื่อน Pointer ใน Array ไปจำนวน1 ช่อง ค่าที่ดึงออกมาจะเป็น Array เช่นกัน
<?php
$arr = array( 51,6,7,4,3,2,10,3,70 );
$myarr = each($arr);
echo $myarr['key'] . " => " . $myarr['value'] . "<br>";
$myarr = each( $arr);
echo $myarr[0] . " => " . $myarr[1] . "<br>";
?>

ฟังก์ชัน end ใช้เลื่อน Pointer ใน Array ไปลำดับสุดท้าย
<?php
$arr = array( 51,6,7,4,3,2,10,3,70 );
echo current($arr) ,"<br>";
end($arr);
echo current($arr) ,"<br>";
?>

ฟังก์ชัน key ใช้ดึง Key ของ Array ที่ Pointer ชีอ้ ยู่
<?php
$arr = array("code" => "123", "name" => "ABC" );
echo key ($arr) ,"<br>";
next($arr);
echo key ($arr) ,"<br>";
?>

ฟังก์ชัน reset เป็นคำสั่งให้เริ่มต้น Pointer ใหม่
<?php
$arr = array(10,20,30,40,50);
echo current($arr) ,"<br>";
next($arr);
echo current($arr) ,"<br>";
reset($arr);
echo current($arr) ,"<br>";
?>

ฟังก์ชัน list ใช้ในการรับค่าที่อ่านมาได้จากอะเรย์โดยจำนวนของตัวแปร (var1,var2,…)ที่ตัง้ รับในคำสั่งนีขึ้น้ อยู่กับขนาดอะเรย์ที่ส่งค่ามาให้ว่าอะเรย์นัน้ ส่งค่าข้อมูลมาให้จำนวนกี่ค่า
<?php
$arr = array("A"=>10,"B"=>20,"C"=>30);
while ( list($key,$data) = each($arr) ) {
echo "$key => $data<br>";
}
?>

ฟังก์ชัน print_r ใช้ในการแสดงค่าใน Array ทัง้ หมด
<?php
$arr = array("A"=>10,"B"=>20,"C"=>30);
print_r($arr);
?>
File: lab4-30.php
<?php
echo "\$_SERVER<br>";
print_r($_SERVER);
?>

ไม่มีความคิดเห็น:

แสดงความคิดเห็น