วันเสาร์ที่ 22 พฤศจิกายน พ.ศ. 2557

อะเรย์ (Array)

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

File: lab4-7.php
<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>


• ข้อมูลแต่ละตัวในอะเรย์ไม่จำเป็น ต้องเป็นข้อมูลชนิดเดียวกัน เช่น อาจจะมีทั้งจำนวนเต็ม เลขทศนิยม ตัวอักษร

File: lab4-8.php
<?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)


File: lab4-9.php
<?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
File: lab4-10.php
<?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)
File: lab4-11.php
<?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
File: lab4-12.php
<?php
$des = file("lab4-6.php");
$count_des = count($des);
if($count_des==0) {
echo "ไม่มีข้อมูลใน File <br>";
}
for ($i=0; $i<$count_des; $i++) {
echo $des[$i] . "<br>";
}
?>




• จากตัวอย่างที่แล้ว หากเราต้องการแสดงข้อความให้ถูกต้อง จำเป็นต้อง Convert Special
Character ก่อนการ Display HTML โดยใช้ Function htmlspecialchars
File: lab4-13.php
<?php
$des = file("lab4-6.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 เป็นอะเรย์สามมิติ
อะเรย์ (Array)
File: lab4-14.php
<?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 มิติ
File: lab4-16.php
<?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";
?>


ถ้าเราต้องการจะเข้าถึงข้อมูลแต่ละคู่ที่ถูกเก็บอยู่ในอะเรย์แบบคู่ จะใช้วิธีเรียกผ่าน
ฟังก์ชัน each() และ list()
File: lab4-17.php
<?php
$test = array( "a" => 10, "b" => 20, "c" => 30 );
while (list($key, $value) = each($test)) {
echo "$key = $value <br>\n";
}
?>



• จะเข้าถึงข้อมูลแต่ละคู่ที่ถูกเก็บอยู่ในอะเรย์แบบคู่สามารถทำได้อีกวิธีคือการใช้คำสั่ง
foreach
File: lab4-18.php
<?php
$test = array( "a" => 10, "b" => 20, "c" => 30 );
foreach ($test as $key => $value) {
echo "$key = $value <br>\n";
}
?>

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

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