You are on page 1of 78

การควบคุมการทํางาน และตัวแปรชุดข้อมูล ในภาษา PHP

ต ัวดําเนินการเปรียบเทียบ
 การเปรียบเทียบตัวเลขสําหรับสร้างเงือนไข มีตวั ดําเนินการดังนี
== เท่ากับ
> มากกว่า
>= มากกว่าหรือเท่ากับ
< น้อยกว่า
<= น้อยกว่าหรือเท่ากับ
!= ไม่เท่ากับ
การสร้างเงือนไข
เราสามารถสร้างเงือนไขจากการเปรียบเทียบได้ซบั ซ้อนมากขึนโดยใช้ตวั ดําเนินการ "และ" "หรือ" "ไม่" มาประกอบ
ตัวอย่างเช่น
 ($x == -1) || ($x==1)

ถ้า $x มีค่าเท่ากับ -1 หรือ 1 จะได้เงือนไขเป็ นจริง นอกเหนือจากนันเป็ นเท็จ


 ($x < 10) && ($x >1)

ถ้า $x มีค่าน้อยกว่า 10 และ มากกว่า 1 ก็จะได้เงือนไขทีเป็ นจริง นอกเหนือจากนันเป็ นเท็จ


 ($x !=0)

ถ้า $x ไม่เท่ากับศูนย์ ก็ได้เงือนไขเป็ นจริง นอกเหนือจากนันเป็ นเท็จ


การใช้ || และ && มีลกั ษณะการทํางานเหมือนในภาษาซี
 ($x || $y)
ถ้า $x เป็ นจริงจะไม่มีการพิจารณา $y
 ($x && $y)

ถ้า $x เป็ นเท็จแล้วจะไม่มกี ารพิจารณา $y ต่อ


FLOW CONTROL ในภาษา PHP
 Flow Control (การควบคุมการทํางานในภาษา PHP) – ในการเขียนโปรแกรม
แบบโครงสร้าง จะมีรปู แบบในการแก้ปัญหาหรือรูปแบบการเขียนโปรแกรม 3 ลักษณะ คือ

เท็จ
เงือนไข
จริ ง เท็จ จริ ง

Sequential Selection Repetition


FLOW CONTROL ในภาษา PHP
 Flow Control (การควบคุมการทํางานในภาษา PHP) –
มีคาํ สัง 2 ประเภทใหญ่ๆ คือ
 คําสังให้เลือกทํา (Selection Statement)
 if … else
 switch
 า/วนลูป (Repetition Statement)
คําสังวนทําซํา/
 while
 do … while
 for
คําสัง IF
 เป็ นคําสังทีใช้ในการทดสอบเงือนไขและเลือกปฏิบตั ิตามเงือนไข
 รูปแบบ if ( เงือนไข )
{ Statement ; … ; … }
 ตัวอย่าง
เท็จ จริ ง
if ($height > 0 && $width > 0)
เงือนไข
{ $area = $height*$width;
คําสังต่าง ๆ เมือ
echo “Area of square = ” .$area; เงือนไขเป็ นจริ ง
}
การทํางาน
ถ้าเงือนไขจริงจะปฏิบตั ิตาม ข้อความสัง ทีอยู่ในบล็อค { } คําสัง
แล้วทําข้อความสังลําดับถัดไป แต่ถา้ เงือนไขเป็ นเท็จจะข้ามไป ถัดไป
ทําข้อความสังลําดับถัดไป
คําสัง IF … ELSE
 if-else เป็ นข้อความสังทีใช้ในการทดสอบเงือนไขโดยจะเลือกปฏิบตั ิการอย่างหนึงถ้าผล
การทดสอบเงือนไขเป็ นจริง และทําอีกอย่างหนึงถ้าการทดสอบให้ค่าเป็ นเท็จ มีรปู แบบดังนี
รูปแบบ if ( เงือนไข ) {
// รายการข้อความสังทีกําหนด;
}
else { เท็จ จริ ง
เงือนไข
// รายการข้อความสังทีกําหนด;
} คําสังต่าง ๆ เมือ คําสังต่าง ๆ เมือ
การทํางาน เงือนไขเป็ นเท็จ เงือนไขเป็ นจริ ง
เมือทดสอบนิพจน์เงือนไขแล้ว ถ้าเงือนไขจริงก็จะทําในบล็อก
แรกแล้ว ทําข้อความสังลําดับถัดไป แต่ถา้ เงือนไขเป็ นเท็จจะทําใน คําสังถัดไป
บล็อคคทีที 2 แล้วทําข้อความสังถัดไป
ตัวอย่าง
<html>
<body>
<?
$a=10;
if ( $a == 10 ){
print "YES, this is true";
}else{
print "NO, this is false";
}
?>
</body>
</html>
คําสัง IF … ELSE IF ซ้อน
 เป็ นข้อความสังทีใช้เลือกการทํางานในกรณีทมี
ี ทางเลือกมากกว่า 2 ทาง มี
เท็จ เงือนไข 1 จริ ง
รูปแบบดังนี
if ( เงือนไข ) { คําสั งต่ าง ๆ เมือ
// รายการข้อความสังทีกําหนด; เท็จ เงือนไข 2 จริ ง
เงือนไข 1 เป็ นจริง
}
elseif { เท็จ เงือนไข 3 จริ ง คําสั งต่ าง ๆ เมือ
เงือนไข 2 เป็ นจริง
// รายการข้อความสัง;
} คําสั งต่ าง ๆ เมือ
เงือนไข 3 เป็ นจริง
else {
// รายการข้อความสังทีกําหนด; คําสังถัดไป
}
ตัวอย่าง <html>
<body>
<html> <?
$a=10
$a=10;;
<body>
$b=20
$b=20;;
<? if ( ( $a == 10 ) && ( $b == 3030)) )
$a=10
$a= 10;; {
if ( $a == 10 ){ print "YES, a=10
a=10 and b=30
b=30"; ";
}
print "YES, this is 10";
10";
elseif ( ( $a == 20 ) || ( $b == 2020)) )
}elseif ( $a == 20 ) { {
print "YES, this is 20";
20"; print "YES, this is 20
20";
";
}else{ }
else
print "Oh.. NO!";
{
} print "Oh.. NO!";
?> }
</body> ?>
</html> </body>
</html>
ข้อความสัง SWITCH - CASE
 Switch เป็นคําสังทีมีการทํางานคล้ายคําสัง if แต่จะมีการกําหนด
เป็นทางเลือก ซึงอาจมาจากเงือนไข หรื อ ค่าของตัวแปรทีต้องการ
ตรวจสอบ
ตัวแปร

case : ค่าที 1 case : ค่าที 2 case : ค่าที N

คําสังทีต่างๆ เมือตัวแปร คําสังทีต่างๆ เมือตัวแปร คําสังทีต่างๆ เมือตัวแปร


มีค่าเท่ากับค่าที 1 มีค่าเท่ากับค่าที 2 มีค่าเท่ากับค่าที N

คําสังถัดไป
ข้อความสัง SWITCH - CASE
 การใช้ switch จะตามด้วยตัวแปรทีต้องการตรวจสอบค่า ถ้า
ตรงกับ case ไหน จะทําตามคําสังใน case นันไปจนกว่าจะ
เจอคําสัง break แต่ถา้ หากเปรียบเทียบแล้วไม่ตรงกับ case ใด
ๆ เลย จะทําในคําสัง default
รูปแบบ switch (variable)
{ case value1 : statement;
break;
case value2 : statement;
break;
case valueN : statement;
break;
default : statement;
}
ตัวอย่าง
<html>
<body>
<?
$day = date("l");
switch ( $day) {
case "Monday" : echo "วันนีวันจันทร์" ;break;
case "Tuesday" : echo "วันนีวันอังคาร" ;break;
case "Wednesday" : echo "วันนีวันพุธ" ;break;
case "Thursday" : echo "วันนีวันพฤหัส ทํางานอีกวันก็หยุด
แล ้ว" ;break;
case "Friday" : echo "วันนีวันสุดท ้ายของการทํางาน"
;break;
default : echo "เฮ.. วันนีวันหยุด นอนอยูบ
่ ้าน" ;
}
?>
</body>
</html>
เปรียบเทียบการใช้ SWITCH และ IF

$year = 15; $year = 15;


switch ($year){ if($year == 5) {
case 5 : $rate = 12; $rate = 12;
break; }elseif($year == 15) {
case 15 : $rate = 18; $rate = 18;
break; }elseif($year == 20) {
case 20 : $rate = 24; $rate = 24;
break; }else{
default : echo "Error!!"; echo "Error!!";
} }
การทําขันตอนซําหรือวนลูป
การวนลูปหรือสร้างลูปเพือทํางานซําเป็ นส่วนประกอบสําคัญของโปรแกรม
คอมพิวเตอร์ ในภาษา PHP ก็จะใช้โครงสร้างเหมือนกับภาษาซีประกอบด้วย
ข้อความสังดังต่อไปนี
while และ do .. while เป็ นการทํางานแบบ loop เช่นกันแต่มี
การเปลียนตําแหน่ งของการเช็คเงือนไข
o while จะเช็คก่อนทําใน loop ดังนัน ถ้าเช็คครังแรกแล้ว
เงือนไขเป็ นเท็จ จะไม่มีการเข้าทํางานในลูปเลย
o do.. while ทําใน loop 1 ครังก่อนแล้วค่อยไปเช็คเงือนไข
ดังนัน ถึงการเช็คเงือนไขครังแรกเป็ นเท็จ คําสังทีอยู่ภายใน
ลูปก็จะได้รบั การทํางานอย่างน้อยทีสุด 1 ครังเสมอ
การทําขันตอนซําหรือวนลูป (ต่อ)

เท็จ ั
คําสงที 1
เงือนไข

จริง
เงือนไข
จริง

คําสงที 1
เท็จ

คําสงที 2


คําสงที 2

while do..while
การทําขันตอนซําหรือวนลูป (ต่อ)
o เมือต้องการให้เกิดการทํางานซํา
o จะทํางานเมือเงือนไขเป็ นจริง
o ไม่รวู ้ ่าจะต้องทําซํากีครัง (แต่ถึงรูจ้ ํานวนครังทีจะวนซํา ก็
สามารถใช้ while และ do..while ได้ เพียงแต่ไม่เป็ นทีนิ ยม
เพราะจะใช้ for แทน)
o คําสังทีอยู่ใน loop ต้องส่งผลให้เงือนไขทีเช็คมีโอกาสเป็ นเท็จ
(ออกจาก loop ได้) มิเช่นนันจะเกิดเหตุการณ์ loop ไม่รจู ้ บ
ข้อความสัง WHILE
เป็ นข้อความสังวนลูปทีง่ายทีสุดใน PHP โดยการทําการงานจะตรวจสอบ
เงือนไขก่อน ถ้าเงือนไขเป็ นจริงจะทําข้อความสังทีอยูใ่ นลูป แต่ถา้ เงือนไขเป็ น
เท็จจะออกจากลูป
รูปแบบแบบที 1
while(condition) {
// statement block.
}
รูปแบบที 2
while(condition) :
// statement block.
Endwhile ;
ต ัวอย่าง
<html>
<body>
<?
$size = 1;
while ($size<7)
{
print("<font size=$size face='arial'
color=blue>HELLO<br>");
$size++;
}
?>
</body>
</html>
ต ัวอย่าง
<html>
<body>
<font size=4 face='arial'>
<?
$str="A";
while ($str<"Z")
{
echo $str;
$str++;
}
?>
</font>
</body>
</html>
ข้อความสัง DO...WHILE
 คล้าย while loop แต่จะทําการตรวจสอบเงือนไข ตอนท้าย โดยจะ
ทํางานใน do while ลูป อย่างน้อย 1 ครังตอนเริมต้นแล้วจึงตรวจสอบ
เงือนไข ถ้าเงือนไขจริงจะวนลูปและออกจากลูปเมือเงือนไขเป็ นเท็จ
รูปแบบ
do {
statement ;
} while(condition);
ต ัวอย่าง
<html>
<body>
<font size=4 face='arial'>
<?
$a=1;
do{
echo $a," ";
$a++;
}while ($a<=20);
print "BREAK OK!";
?>
</font>
</body>
</html>
ข้อความสัง FOR
o for เป็ นคําสังวนซําทีใช้แก้ปัญหาโจทย์ลกั ษณะ ทีมีการ
ทํางานเดิมซําๆกันหลาย ๆ ครังโดยทีรูจ้ ํานวนรอบที
แน่ นอน
o รูปแบบแบ่งออกเป็ น 3 ส่วน คื อ
o ส่วนกําหนดค่าตัวนับ เป็ นการกําหนดค่าเริมต้นให้กบั ตัว
แปร เพือใช้ควบคุมการวน loop
o ส่วนทีตรวจสอบเงือนไขเพือตัดสิ นว่าจะวนซํา หรือไม่
o ส่วนของการจัดการค่าตัวนับของการวนซํา เป็ นการเพิม
ค่าหรือการลดค่าให้ตวั แปรทีควบคุม loop
ข้อความสัง FOR
 for ( $i=1 ; $i <= 3 ; $i++) {
 echo $i.“Hello”;
 } For i=1 to 3

พิมพ์คา่ i

พิมพ์ Hello
ข้อความสัง FOR
o การเพิมค่าในแต่ละรอบจะเป็ นเท่าไรก็ได้ เช่น
for($x = 0;$x<=100;$x+= 5)
o ในส่วนของการเปลี ยนค่า นอกจากการเพิมค่า (increment) สามารถ
กําหนดให้มีการลดค่าของตัวแปรทีใช้ในการวนรอบได้
for($x = 100;$x>0;$x--)
o ตัวแปรทีใช้ในการวนรอบอาจกําหนดให้เป็ นชนิ ด char ได้
for($ch = ‘a’;$ch<=‘z’;$ch++)
 break จะใช้หยุดการทํางานของวนรอบ loop
for ($i=1; $i<11; $i++)
{
if ($i == 6) break;
echo "Hello...ครงที
ั $i <br>";
}
ข้อความสัง FOR

o continue จะทํางานตรงข้ามกับคําสัง Break คําสัง


Continue จะสังให้โปรแกรมทํางานต่อไป
o คําสัง Continue กับ For คือจะเป็ นการสังให้กลับไปเพิมค่า
ให้กบั ตัวแปรทันที
o คําสัง Continue กับ While คือจะเป็ นการสังให้กลับไปทดสอบ
เงือนไขใหม่ทนั ที
for ($i=1; $i<11; $i++)
{ if ($i==6) continue;
echo "Hello...ครังที $i <br />";
}
ต ัวอย่าง
<html>
<body>
<font size=4 face='arial'>
<?
$a=1;
for ( $a=1 ; $a<13 ; $a++ )
{
echo "2 x $a = ",2*$a , "<br>";
}
?>
</font>
</body>
</html>
ตัวแปรชุดข้อมูล (ARRAY) ใน PHP
 ตัวแปรชุดข้อมูล (Array) คือ ตัวแปรทีใช้เก็บข้อมูลเป็ นกลุ่ม หรือเป็ น
ชุดๆ ซึงโดยปกติแล้วข้อมูลทังหมดใน array จะมีชนิดข้อมูล (type)
เดียวกันทังชุด
 การอ้างอิงกลุ่มข้อมูลชุดนีสามารถอ้างอิงได้ดว้ ย “ชือตัวแปรเดียวกัน”
 ข้อมูลแต่ละตัวในอาร์เรย์ เรียกว่า “สมาชิกของอาร์เรย์”
 สมาชิกแต่ละตัวจะมี “ดัชนี” (index) หรือตัวบ่งชีกํากับ หรืออาจเรียกว่า
“subscript”
 อาร์เรย์ 1 มิติ (One Dimensional Array) คือ การประกาศ
หรือสร้างตัวแปรเพือใช้เก็บข้อมูลหลายๆ ตัว โดยแต่ละตัวจะแทนข้อมูล 1
รายการ
ตัวแปรชุดข้อมูล (ARRAY) ใน PHP
 เช่น การประกาศตัวแปร $score เพือใช้เก็บข้อมูลคะแนนวิชา CSS327 เพียงวิชา
เดียว ของนักศึกษา 20 คน จะได้ภาพของตัวแปร ดังรูป

$score คะแนน นร. คนที 1 คะแนน นร. คนที 2 ... คะแนน นร. คนที 20

$score[0] $score[1] $score[19]


ตัวแปรชุดข้อมูล (ARRAY) ใน PHP
 อาร์เรย์ 2 มิติ (Two Dimensional Array) คือ การประกาศ
หรือสร้างตัวแปรเพือใช้เก็บข้อมูลหลายๆ ตัว โดยแต่ละตัวจะแทนข้อมูล 1
รายการ ทีมีความสัมพันธ์กนั ใน 2 ด้าน
เช่น การประกาศตัวแปร $score เพือใช้เก็บข้อมูลคะแนนวิชา
CSS327, CSS328, CSS329 ของนักศึกษา 20 คน
จะได้ภาพของตัวแปร ดังรูป
CSS327 CSS328 CSS329
คนที 1 คะแนน CSS327 ของ คะแนน CSS328 ของ คะแนน CSS329 ของ
ึ ษา คนที 1
นักศก ึ ษา คนที 1
นักศก ึ ษา คนที 1
นักศก
คนที 2 คะแนน CSS327 ของ คะแนน CSS328 ของ คะแนน CSS329 ของ
ึ ษา คนที 1
นักศก ึ ษา คนที 1
นักศก ึ ษา คนที 1
นักศก
… … …

คนที 20 คะแนน CSS327 ของ คะแนน CSS328 ของ คะแนน CSS329 ของ
ึ ษา คนที 20
นักศก ึ ษา คนที 20
นักศก ึ ษา คนที 20
นักศก
ตัวแปรชุดข้อมูล (ARRAY) ใน PHP
 อาร์เรย์ 2 มิติ (Two Dimensional Array)
เช่น การประกาศตัวแปร $score เพือใช้เก็บข้อมูลคะแนนวิชา
CSS327, CSS328, CSS329 ของนักศึกษา 20 คน
จะได้ภาพของตัวแปร ดังรูป
$score [0] [1] [2]
[0] $score [0][0] $score [0][1] $score [0][2]

[1] $score [1][0] $score [1][1] $score [1][2]

… … …

[19] $score [19][0] $score [19][1] $score [19][2]


ตัวแปรชุดข้อมูล (ARRAY) ใน PHP

 อาร์เรย์ 2 มิติ (Two Dimensional Array) จะมอง


ข้อมูลในลักษณะตารางทีประกอบด้วยแถวและคอลัมน์
 จากตัวอย่างเป็ นตารางเก็บคะแนนของนักศึกษา
 แถว คือ คะแนนของนักศึกษาแต่ละคน
 คอลัมน์ คือ คะแนนสอบแต่ละวิชา
 ดังนันการอ้างอิงถึงข้อมูลจุดใดจุดหนึงในตัวแปรอาร์เรย์ 2 มิติ ก็คือ
การอ้างอิงใน 2 ด้านพร้อมกัน ในตัวอย่างจะเป็ นการอ้างอิงคะแนน
ของนักศึกษา 1 คนในการสอบ 1 วิชา
 อาร์เรย์ใน PHP
 Index ทีเป็ นตัวเลขจะเริมที 0 แต่สามารถกําหนด index ให้เป็ น
ตัวอักษรได้
 ตัวแปรทีเป็ นอาร์เรย์ไม่จาํ เป็ นต้องประกาศ และไม่ตอ้ งกําหนดขนาดก่อน
การใช้งาน
 ขนาดจะปรับเปลียนได้ คือ ขยายตามจํานวนข้อมูลทีเก็บอยูใ่ นอาร์เรย์
 อาร์เรย์ทมี
ี ขนาดเปลียนแปลงได้นเรี ี ยกว่า dynamic array
 อาร์เรย์ใน PHP
 ี ในภาษา PHP นี ไม่จาํ เป็ นต้องเป็ น
ข้อมูลแต่ละตัวในอาร์เรย์ทใช้
ข้อมูลชนิดเดียวกัน เช่น อาจจะมีทงจํ
ั านวนเต็ม, เลขทศนิยม เช่น
$myarry[ ] = 3;
$myarry[ ] = 1.1;
$myarry[ ] = “abc”;
 ี ได้กาํ หนด index ก็จะหมายถึงว่า array ดังกล่าว
ในกรณีทเราไม่
จะมีการขยายขนาดของอาร์เรย์เพิมขึนอัตโนมัติทุกครังทีมีการกําหนดค่า
โดยจะเก็บไว้ในทีใหม่ของอาร์เรย์
ั ARRAY
การสร ้างอะเรย์โดยใช้ฟังก์ชน
 รูปแบบ array array([mixed…])

<?

array 35
$arr = array( 5,6,7,4,3,2,10,3,440 );
$all = count( $arr );
for ($i=0;$i<$all;$i++){
print "$arr[$i] ";
}
?>
ตัวอย่าง

$arr=arrray(10,20,30.30,"PHP","PROGRMMING");

array 36
for($r=0; $r < count($arr) ; $r++){
echo (" index $r = $arr [$r]<br>");
}
ั RANGE
การสร ้างอะเรย์โดยใช้ฟังก์ชน
 รูปแบบ array range(int low, int high)
 ต ัวอย่าง
<?

array 37
$arr = range( 6,10);
$all = count( $arr );
for ($i=0;$i<$all;$i++){
echo "arr[" .$i. "] = ";
echo $arr[$i] ;
echo "<BR>";
}
?>
การเข ้าถึงข ้อมูลในอะเรย์
 การอ้างตําแหน่งของอินเด็กซ ์ เชน

$arr[3]="php";

array 38
 ใช ้ ข้อความสง ั for เชน

for ($i=0;$i<4;$i++){
echo $arr[$i]."<BR>";
}
<HTML>
<HEAD><TITLE>Figure 5-2</TITLE></HEAD>
<BODY>
<?
$Cities[] = "San Francisco";
City 0 is San Francisco.

array 39
$Cities[] = "Los Angeles"; City 1 is Los Angeles.
$Cities[] = "New York"; City 2 is New York.
$Cities[] = "Martinez";
//count number of elements City 3 is Martinez.
$indexLimit = count($Cities);
// print out every element
for($index=0; $index < $indexLimit; $index++)
{
print("City $index is $Cities[$index]. <BR>\n");
}
?>
</BODY>
</HTML>
การใช้อะเรย์หลายมิติ (MULTIDIMENSIONAL
ARRAY)
 กําหนดชือตัวแปรแล้วตามด้วยเครือง [..][..] สําหรับอะเรย์สองมิติและ [.. ][.. ] [..
] สําหรับอะเรย์สามมิติ

array 40
$arr_2[1][1] = 4000;
//$arr_2เป็ นอะเรย์สองมิติ
$arr_3[1][1][1] = 2000;
//$arr_3เป็ นอะเรย์สามมิติ
การใช้อะเรย์หลายมิติ (ต่อ)
$dim = 3;
for ($row=0; $row <= $dim; $row++) {

array 41
for ($column=0; $column <= $dim; $column++) {
$myarray2[$row][$column] = 4*$row + $column;
echo $myarray2[$row][$column]," ";
}
echo "<BR>\n";
}
อะเรย์แบบคู่

 การเก็บข้อมูลในอะเรย์แบบนีจะใช้กบั ข้อมูลทีจัดเก็บเป็ นคูๆ่


 ใช้ทาํ lookup table

array 42
อะเรย์แบบคู่ (ต่อ)
 สมมุติวา่ "red" ให้แทนค่า 0xff0000 "green" ให้แทนค่า 0x00ff00 และ "blue" ให้
แทนค่า 0x0000ff โดยเก็บไว้ในอะเรย์ชือ $color_table
 ั ใช ้
คําสงที

array 43
$color_table["red"] = 0xff0000;
$color_table["green"] = 0x00ff00;
$color_table["blue"] = 0x0000ff;

$color_name= "red";
echo "value = ".$color_table[ $color_name]."<BR>\n";
อะเรย์แบบคู่ (ต่อ)
 ั array ()
สร้างอะเรย์แบบคูไ่ ด้โดยใช้ฟังก์ชน
ั array ()
 จากตัวอย่างทีแล ้วเราสามารถสร้างอะเรย์แบบคูไ่ ด้โดยใช้ฟังก์ชน
ดังนี

array 44
$color_table = array(
"red" => 0xff0000,
"green" => 0x00ff00,
"blue" => 0x0000ff
);
ตัวอย่าง
<?
$word[a] = "Ant";
$word[b] = "Bat";

array 45
$word[c] = "Cat";
$word[d] = "Dog";
print( "$word[d] , $word[a]");
print ("<BR>");
print( "$word[a] , $word[b]");
?>
หรือ
<?
$word = array( "a" => "Ant" , "b" => "Bat" , "c" => "Cat" , "d" => "Dog" );
print( "$word[d] , $word[c]");
print ("<BR>");
print( "$word[b] , $word[a]");
?>
ตัวอย่าง
 จากตัวอย่าง a,b, c, d จะเรียกว่า key และ Ant, Bat ,
Cat, Dog จะเรียกว่า Value

array 46
 การแสดงค่า key และ value ของอะเรย์แบบคูจ ่ ะใช ้
ฟั งก์ชน ื key และ value เชน
ั ชอ ่
<?
$keep_age = array( "wichai" => 15 , "jira" => 18 ,
"wittawat" => 30 , "chuchai" => 16 );
$name =key($keep_age);
$age =current($keep_age);
print ("Age of <u>$name</u> is $age");
?>
เราสามารถสร้ อะเรย์แแบบเชื
เราสามารถสร้างงอะเรย์ บบเชือมโยงเป็ นสองมิติได้ เช่น
<?
$countries = array (
"thailand" => array ( "zone" => "Asia", "D_NAME" => ".th"),

array 47
"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()

array 48
 ฟั งก์ชนั each()จะท่องไปในอะเรย์และสง ่ ค่ามาให้
ฟังก์ชน ั list() กําหนดให้ก ับต ัวแปร 2 ต ัว
ตัวอย่าง
unset($a);
$a = array( "a" => 10, "b" => 20, "c" => 30 );

array 49
while (list($key, $value) = each($a)) {
echo "$key=$value <BR>\n";
}

จะได้ผลลัพธ์
a=10 ,b=20 ,c=30
ตัวอย่าง
<?
$keep_age = array( "wichai" => 15 , "jira" => 18 ,

array 50
"wittawas" => 30 , "chuchai" => 16 );
while ( list( $name , $age ) = each( $keep_age ) ){
print(" $name = $age<br>");
}
?>
ฟั งก์ชนั ทีเกียวกับอะเรย์

51
ฟั งก์ชนั SORT
• รูปแบบการใช้งาน
void sort (array arr);

array 52
ั ทีใช้ในการเรียงลําดับรายการข้อมูลในอะเรย์นนโดยจั
 เป็ นฟั งก์ชน ั ดเรียงข้อมูลจากค่า
น้อยไปหาค่ามาก
ตัวอย่าง
$sort = array(50,40,30,20);
sort($sort);

array 53
for($r = 0; $r < count($sort);$r++){
echo “$sort[$r]<br>”;
}
20
30
40
50
ฟั งก์ชนั ASORT
• รูปแบบการใช้งาน
void asort (array arr);

array 54
ั ทีใช้ในการเรียงลําดับข้อมูลในอะเรย์แบบคู่ โดยจัดเรียงข้อมูลจากค่า
 เป็ นฟั งก์ชน
Value ทีเก็บไว ้จากน้อยไปหาค่ามาก
ตัวอย่าง
<?
$keep_age = array( "wichai" => 15 , "jira" => 18 ,
"wittawas" => 30 , "chuchai" => 16 );

array 55
asort( $keep_age );
do{
$name = key( $keep_age );
$age = current( $keep_age );
print "age of $name is $age<br>";
}while( next( $keep_age) );
?>
ฟั งก์ชนั KSORT
• รูปแบบการใช้งาน
void ksort (array arr);

array 56
ั ทีใช้ในการเรียงลําดับข้อมูลในอะเรย์แบบคู่ โดยจัดเรียงข้อมูลจากค่า
 เป็ นฟั งก์ชน
key ทีเก็บไว ้จากน้อยไปหาค่ามาก
ตัวอย่าง
<?
$keep_age = array( "wichai" => 15 , "jira" => 18 ,
"wittawas" => 30 , "chuchai" => 16 );

array 57
ksort( $keep_age );
do{
$name = key( $keep_age );
$age = current( $keep_age );
print "age of $name is $age<br>";
}while( next( $keep_age) );
?>
ฟั งก์ชนั MAX, MIN
 รูปแบบการใช้งาน max(array arr );
min(array arr );

array 58
ั max ใช้ในการหาค่าสูงสุดและ min ใช้ในการหาค่าตําสุด
 ฟั งก์ชน

<?
$arr = array( 5,6,7,4,3,2,10,3,440 );
echo max( $arr) ,"<br>";
echo min( $arr) ,"<br>";
?>
ฟั งก์ชนั ARRAY

รูปแบบการใช้งาน array array( );

array 59
คําสังทีใช้ในการสร้างอะเรย์โดยเราสามารถกําหนดค่าของดัชนีและค่าของข้อมูลไปพร้อมกับการ
สร้างอะเรย์

$test1=array(); //สร้างอะเรย์วา่ ง $test1


ฟั งก์ชนั ARRAY_WALK

 ฟั งก์ชนั array_walk
 รูปแบบการใช้งาน int array_walk(array arr,string func);

array 60
 คําสังทีใช้ในการเข้าถึงข้อมูลทีเก็บอยูใ่ นรูปแบบของอะเรย์โดยต้องการอากิวเมนต์สองตัวคือ

1. อะเรย์ทีต้องการเข้าถึงข้อมูลทีเก็บไว้ในอะเรย์นนั
2. ชือของฟั งก์ชนั ทีต้องการเรียกใช้และต้องมีการสร้างฟั งก์ชนั โดยมีการกําหนดตัวแปร
พารามิเตอร์คอยรับค่า
ฟั งก์ชนั COUNT
 รูปแบบการใช้งาน void count (array arr);
 คําสังทีใช้นบ
ั จํานวนของข้อมูลทีเก็บอยูภ่ ายในรายการข้อมูลของอะเรย์นนว่
ั ามีจาํ นวนข้อมูล

array 61
ทังหมดเท่าไร
ฟั งก์ชนั CURRENT

 รูปแบบการใช้งาน mixed current(array arr);


 เป็ นคําสังทีใช้ในการคืนค่าของข้อมูลทีตําแหน่ง พอยน์เตอร์(pointer)ชีอยู(่ ภายในรายการข้อมูล
ของอะเรย์จะมี pointer เป็ นตัวระบุตาํ แหน่งปั จจุบนั ของข้อมูลนัน)

array 62
ตัวอย่าง

$sort=array(50,40,30,20);
echo current($sort),"br>"; //แสดงค่า 50

array 63
next($sort);//เลือน pointer ไปยังข้อมูลตัวต่อไป
echo current($sort); //แสดงค่า 40
ฟั งก์ชนั EACH

 รูปแบบการใช้งาน array each (array arr);


 คําสังทีใช้ในการอ่านค่าข้อมูลของอะเรย์ทีละตัว เมืออ่านแล้ว pointer ทีชีตําแหน่งของ

array 64
ข้อมูลก็จะเลือนไปยังข้อมูลตัวถัดไป และค่าทีอ่านได้นนจะเก็
ั บไว้ในอะเรย์อกี ที
ตัวอย่าง
$sort = array(5,40,30,20);
$get = each($sort); /*ค่าใน $sort มาหนึงค่าแล้วเลือน pointer ไปยัง

array 65
ข้อมูลตัวถัดไปโดย $get จะเป็ นตัวแปรอะเรย์ทีรับค่าทีอ่านได้ */
echo “$get[0] => $get[1] <br>”;
echo “$get[key] => $get[value]”;
ฟั งก์ชนั END
 รูปแบบการใช้งาน void end (array arr);
 เป็ นคําสังทีใช้เลือน pointer ทีชีตําแหน่งทีอยูข่ องข้อมูลปั จจุบน
ั ไปยังตําแน่งทีอยูส่ ุดท้าย

array 66
ของรายการข้อมูลของอะเรย์นนั
ตัวอย่าง

$sort = array ( 50, 40, 30, 20 );


echo current($sort).”<br>”// แสดงค่า 50

array 67
end($sort); // เลือน pointer ไปยังข้อมูลตัวสุดท้าย
echo current($sort); // แสดงค่า 20
ฟั งก์ชนั KEY

 รูปแบบการใช้งานฟังก์ชนั
mixed key (array arr);

array 68
ั อยูท่ ี pointer ชีข้อมูลในอะเรย์อยูน่ นดั
 เป็ นคําสังทีใช้ในการตรวจสอบว่าตําแหน่งปั จจุบน ั ชนีของ
ข้อมูลนันมีคา่ เป็ นอะไร
ตัวอย่าง
$sort = array (“start”=>50,40,30,”stop”=>20);
echo key($sort).”<br>”;

array 69
// แสดงค่าดัชนีปัจจุบนั ที pointer ชีอยู่
end($sort);
// เลือน pointer ไปยังข้อมูลตัวต่อไป
echo key($sort);
// แสดงค่าดัชนีปัจจุบนั ที pointer ชีอยู่

Start
stop
ฟั งก์ชนั LIST
 รูปแบบการใช้งาน
void list (var1,var2,…);

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

array 71
echo “$key =>$data<br>”;
}

A =>10
B =>20
C =>30
ฟั งก์ชนั NEXT
 รูปแบบการใช้งาน
mixed next(array arr)

array 72
 เป็ นคําสังทีใช้เลือน pointer ให้ชีไปยังข้อมูลตัวถัดไปในรายการข้อมูลของอะเรย์
ตัวอย่าง
$sort = array(50,40,30,20);
echo current($sort).:”<br>”;

array 73
// แสดงค่าข้อมูลปั จจุบนั
50
next($sort);
40
// เลือน pointer ไปยังข้อมูลตัวต่อไป
echo current($sort);
// แสดงค่าข้อมูลหลังจากเลือน pointer
ฟั งก์ชนั PREV

 รูปแบบการใช้งาน
mixed prev (array arr)

array 74
 เป็ นคําสังทีใช้เลือน pointer ให้ชีไปยังข้อมูลตัวก่อนหน้านีทีมีการเลือน pointer มา
ในรายการข้อมูลของอะเรย์
ตัวอย่าง
$sort = array(50,40,30,20);
echo current($sort).”<br>”; // แสดงค่าข้อมูลปั จจุบนั
next($sort); // เลือน pointer เดินหน้าไปยังข้อมูลตัวต่อไป

array 75
echo current($sort).”<br>”; // แสดงค่าข้อมูลหลังจากเลือน pointer
prev($sort); // เลือน pointer ถอยหลังไปยังข้อมูลตัวก่อนหน้านี
echo current($sort); // แสดงค่าข้อมูลหลังจากเลือน pointer

50
40
50
ฟั งก์ชนั RESET
 รูปแบบการใช้งาน
void reset (array arr)

array 76
 เป็ นคําสังทีกําหนดค่าเริมต้นของ pointer ใหม่โดยให้มาเริมต้นทีข้อมูลตัวแรกของ
รายการข้อมูลทังหมดไม่วา่ ตอนนัน pointer จะชีอยูท่ ข้ี อมูลใดก็ตาม

PHP
Prog
ram
ming
ตัวอย่าง

$sort = array(50,40,30,20);
echo current($sort).”<br>”; // แสดงค่าข้อมูลปั จจุบนั

array 77
next($sort); // เลือน pointer เดินหน้าไปยังข้อมูลตัวต่อไป
echo current($sort).”<br>”; //แสดงค่าข้อมูลหลังจากเลือน pointer
next($sort); // เลือน pointer เดินหน้าไปยังข้อมูลตัวต่อไป
echo current($sort).”<br>”; // แสดงค่าข้อมูลหลังจากเลือน pointer
next($sort); // เลือน pointer เดินหน้าไปยังข้อมูลตัวต่อไป
echo current($sort).”<br>”; // แสดงค่าข้อมูลหลังจากเลือน pointer
reset($sort); // สังให้ pointer ไปเริมต้นทีข้อมูลตัวแรกของรายการ
echo current($sort); // แสดงค่าข้อมูลหลังจากใช้คาํ สัง reset

PHP
Prog
ram
ming
ฟั งก์ชนั SIZEOF
 รูปแบบการใช้งาน
int sizeof (array arr);

array 78
 การทํางานของคําสังนีจะเหมือนกับคําสัง count

PHP
Prog
ram
ming

You might also like