เสรี ชิโนดม seree@buu.ac.th Array in PHP เสรี ชิโนดม seree@buu.ac.th
อะเรย์ (Array) อะเรย์หรือตัวแปรชุดคือตัวแปรที่สามารถเก็บค่าได้หลายๆค่า โดยใช้ตัวแปรตัวเดียว สิ่งที่อยู่ภายในอะเรย์เรียกว่าสมาชิก แต่ละสมาชิกในอะเรย์จะมีอินเด็กซ์เพื่อใช้อ้างอิง อินเด็กซ์ใช้อ้างอิงถึงแต่ละสมาชิกที่อยู่ในอะเรย์ ใน PHP อินเด็กซ์จะเริ่มที่ 0 แต่สามารถกำหนดอินเด็กซ์ให้เป็นตัวอักษรได้ PHP Programming
ตัวอย่าง <html> <body> <? $arr[0] = "Red"; $arr[1] = "Green"; $arr[2] = "Blue"; $arr[3] = "White"; echo " $arr[0] , $arr[1] ,$arr[2] ,$arr[3] " ; ?> </body> </html> PHP Programming
อะเรย์ (Array) ใน PHP อะเรย์ที่มีขนาดเปลี่ยนแปลงได้เรียกว่า dynamic array หรือ vector(สำหรับอะเรย์มิติเดียว) $myarray[]=3; $myarray[]=1.1; $myarray[]="abc"; ขนาดจะปรับเปลี่ยนได้ คือขยายจำนวนข้อมูลที่เก็บอยู่ภายในอะเรย์ ข้อมูลแต่ละตัวในอะเรย์ไม่จำเป็น ต้องเป็นข้อมูลชนิดเดียวกัน เช่น อาจจะมีทั้งจำนวนเต็ม เลขทศนิยม PHP Programming
ตัวอย่าง <? $arr[0] = "Chair"; $arr[1] = 20; $arr[2] = 3.37; $all = count( $arr ); for ($i=0; $i<$all; $i++){ print "Member $i =$arr[$i] <BR>"; } ?> PHP Programming
การสร้างอะเรย์เพื่อนำไปใช้งาน ไม่จำเป็นต้องประกาศตัวแปร ค่าของอะเรย์จะ ถูกกำหนดให้ตอนที่ โปรแกรมทำงาน (Run time) <? $arr[] = "Red"; $arr[] = "Green"; $arr[] = "Blue"; $arr[] = "White"; ?> PHP Programming
การสร้างอะเรย์เพื่อนำไปใช้งาน <? $arr[10] = 100; $arr[5] = 200; $arr[40] = 300; ?> PHP Programming
การสร้างอะเรย์โดยใช้ฟังก์ชัน array รูปแบบ array array([mixed…]) <? $arr = array( 5,6,7,4,3,2,10,3,440 ); $all = count( $arr ); for ($i=0;$i<$all;$i++){ print "$arr[$i] "; } ?> PHP Programming
ตัวอย่าง $arr=arrray(10,20,30.30,"PHP","PROGRMMING"); for($r=0; $r < count($arr) ; $r++){ echo (" index $r = $arr [$r]<br>"); } PHP Programming
การสร้างอะเรย์โดยใช้ฟังก์ชัน range รูปแบบ array range(int low, int high) ตัวอย่าง <? $arr = range( 6,10); $all = count( $arr ); for ($i=0;$i<$all;$i++){ echo "arr[" .$i. "] = "; echo $arr[$i] ; echo "<BR>"; } ?> PHP Programming
การเข้าถึงข้อมูลในอะเรย์ การอ้างตำแหน่งของอินเด็กซ์ เช่น $arr[3]="php"; ใช้ ข้อความสั่ง for เช่น for ($i=0;$i<4;$i++){ echo $arr[$i]."<BR>"; } PHP Programming
City 0 is San Francisco. City 1 is Los Angeles. City 2 is New York. <HTML> <HEAD><TITLE>Figure 5-2</TITLE></HEAD> <BODY> <? $Cities[] = "San Francisco"; $Cities[] = "Los Angeles"; $Cities[] = "New York"; $Cities[] = "Martinez"; //count number of elements $indexLimit = count($Cities); // print out every element for($index=0; $index < $indexLimit; $index++) { print("City $index is $Cities[$index]. <BR>\n"); } ?> </BODY> </HTML> City 0 is San Francisco. City 1 is Los Angeles. City 2 is New York. City 3 is Martinez. PHP Programming
การใช้อะเรย์หลายมิติ (Multidimensional Array) กำหนดชื่อตัวแปรแล้วตามด้วยเครื่อง [..][..] สำหรับอะเรย์สองมิติและ [.. ][.. ] [.. ] สำหรับอะเรย์สามมิติ $arr_2[1][1] = 4000; //$arr_2เป็นอะเรย์สองมิติ $arr_3[1][1][1] = 2000; //$arr_3เป็นอะเรย์สามมิติ PHP Programming
การใช้อะเรย์หลายมิติ (ต่อ) $dim = 3; for ($row=0; $row <= $dim; $row++) { for ($column=0; $column <= $dim; $column++) { $myarray2[$row][$column] = 4*$row + $column; echo $myarray2[$row][$column]," "; } echo "<BR>\n"; } PHP Programming
อะเรย์แบบคู่ การเก็บข้อมูลในอะเรย์แบบนี้จะใช้กับข้อมูลที่จัดเก็บเป็นคู่ๆ ใช้ทำ lookup table PHP Programming
อะเรย์แบบคู่ (ต่อ) สมมุติว่า "red" ให้แทนค่า 0xff0000 "green" ให้แทนค่า 0x00ff00 และ "blue" ให้แทนค่า 0x0000ff โดยเก็บไว้ในอะเรย์ชื่อ $color_table คำสั่งที่ใช้ $color_table["red"] = 0xff0000; $color_table["green"] = 0x00ff00; $color_table["blue"] = 0x0000ff; $color_name= "red"; echo "value = ".$color_table[ $color_name]."<BR>\n"; PHP Programming
อะเรย์แบบคู่ (ต่อ) สร้างอะเรย์แบบคู่ได้โดยใช้ฟังก์ชัน array () $color_table = array( "red" => 0xff0000, "green" => 0x00ff00, "blue" => 0x0000ff ); PHP Programming
ตัวอย่าง <? $word[a] = "Ant"; $word[b] = "Bat"; $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( "$word[b] , $word[a]"); PHP Programming
ตัวอย่าง จากตัวอย่าง a,b, c, d จะเรียกว่า key และ Ant, Bat , Cat, Dog จะเรียกว่า Value การแสดงค่า 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"); ?> PHP Programming
เราสามารถสร้างอะเรย์แบบเชื่อมโยงเป็นสองมิติได้ เช่น <? $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"; ?> PHP Programming
การท่องไปในอะเรย์แบบคู่ ถ้าเราต้องการจะเข้าถึงข้อมูลแต่ละคู่ที่ถูกเก็บอยู่ในอะเรย์แบบคู่ จะใช้วิธีเรียกผ่านฟังก์ชัน each() และ list() ฟังก์ชัน each()จะท่องไปในอะเรย์และส่งค่ามาให้ฟังก์ชัน list() กำหนดให้กับตัวแปร 2 ตัว PHP Programming
ตัวอย่าง unset($a); $a = array( "a" => 10, "b" => 20, "c" => 30 ); while (list($key, $value) = each($a)) { echo "$key=$value <BR>\n"; } จะได้ผลลัพธ์ a=10 ,b=20 ,c=30 PHP Programming
ตัวอย่าง <? $keep_age = array( "wichai" => 15 , "jira" => 18 , "wittawas" => 30 , "chuchai" => 16 ); while ( list( $name , $age ) = each( $keep_age ) ){ print(" $name = $age<br>"); } ?> PHP Programming
ฟังก์ชันที่เกี่ยวกับอะเรย์
ฟังก์ชัน sort รูปแบบการใช้งาน void sort (array arr); เป็นฟังก์ชันที่ใช้ในการเรียงลำดับรายการข้อมูลในอะเรย์นั้นโดยจัดเรียงข้อมูลจากค่าน้อยไปหาค่ามาก PHP Programming
ตัวอย่าง $sort = array(50,40,30,20); sort($sort); for($r = 0; $r < count($sort);$r++){ echo “$sort[$r]<br>”; } 20 30 40 50 PHP Programming
ฟังก์ชัน asort รูปแบบการใช้งาน void asort (array arr); เป็นฟังก์ชันที่ใช้ในการเรียงลำดับข้อมูลในอะเรย์แบบคู่ โดยจัดเรียงข้อมูลจากค่า Value ที่เก็บไว้จากน้อยไปหาค่ามาก PHP Programming
ตัวอย่าง <? $keep_age = array( "wichai" => 15 , "jira" => 18 , "wittawas" => 30 , "chuchai" => 16 ); asort( $keep_age ); do{ $name = key( $keep_age ); $age = current( $keep_age ); print "age of $name is $age<br>"; }while( next( $keep_age) ); ?> PHP Programming
ฟังก์ชัน ksort รูปแบบการใช้งาน void ksort (array arr); เป็นฟังก์ชันที่ใช้ในการเรียงลำดับข้อมูลในอะเรย์แบบคู่ โดยจัดเรียงข้อมูลจากค่า key ที่เก็บไว้จากน้อยไปหาค่ามาก PHP Programming
ตัวอย่าง <? $keep_age = array( "wichai" => 15 , "jira" => 18 , "wittawas" => 30 , "chuchai" => 16 ); ksort( $keep_age ); do{ $name = key( $keep_age ); $age = current( $keep_age ); print "age of $name is $age<br>"; }while( next( $keep_age) ); ?> PHP Programming
ฟังก์ชัน max, min รูปแบบการใช้งาน max(array arr ); min(array arr ); <? $arr = array( 5,6,7,4,3,2,10,3,440 ); echo max( $arr) ,"<br>"; echo min( $arr) ,"<br>"; ?> PHP Programming
$test1=array(); //สร้างอะเรย์ว่าง $test1 รูปแบบการใช้งาน array array( ); คำสั่งที่ใช้ในการสร้างอะเรย์โดยเราสามารถกำหนดค่าของดัชนีและค่าของข้อมูลไปพร้อมกับการสร้างอะเรย์ $test1=array(); //สร้างอะเรย์ว่าง $test1 PHP Programming
ฟังก์ชัน array_walk ฟังก์ชัน array_walk รูปแบบการใช้งาน int array_walk(array arr,string func); คำสั่งที่ใช้ในการเข้าถึงข้อมูลที่เก็บอยู่ในรูปแบบของอะเรย์โดยต้องการอากิวเมนต์สองตัวคือ 1. อะเรย์ที่ต้องการเข้าถึงข้อมูลที่เก็บไว้ในอะเรย์นั้น 2. ชื่อของฟังก์ชันที่ต้องการเรียกใช้และต้องมีการสร้างฟังก์ชันโดยมีการกำหนดตัวแปรพารามิเตอร์คอยรับค่า PHP Programming
ฟังก์ชัน count รูปแบบการใช้งาน void count (array arr); คำสั่งที่ใช้นับจำนวนของข้อมูลที่เก็บอยู่ภายในรายการข้อมูลของอะเรย์นั้นว่ามีจำนวนข้อมูลทั้งหมดเท่าไร PHP Programming
ฟังก์ชัน current รูปแบบการใช้งาน mixed current(array arr); เป็นคำสั่งที่ใช้ในการคืนค่าของข้อมูลที่ตำแหน่ง พอยน์เตอร์(pointer)ชี้อยู่(ภายในรายการข้อมูลของอะเรย์จะมี pointer เป็นตัวระบุตำแหน่งปัจจุบันของข้อมูลนั้น) PHP Programming
ตัวอย่าง $sort=array(50,40,30,20); echo current($sort),"br>"; //แสดงค่า 50 next($sort);//เลื่อน pointer ไปยังข้อมูลตัวต่อไป echo current($sort); //แสดงค่า 40 PHP Programming
ฟังก์ชัน each รูปแบบการใช้งาน array each (array arr); คำสั่งที่ใช้ในการอ่านค่าข้อมูลของอะเรย์ทีละตัว เมื่ออ่านแล้ว pointer ที่ชี้ตำแหน่งของข้อมูลก็จะเลื่อนไปยังข้อมูลตัวถัดไป และค่าที่อ่านได้นั้นจะเก็บไว้ในอะเรย์อีกที PHP Programming
ตัวอย่าง $sort = array(5,40,30,20); $get = each($sort); /*ค่าใน $sort มาหนึ่งค่าแล้วเลื่อน pointer ไปยังข้อมูลตัวถัดไปโดย $get จะเป็นตัวแปรอะเรย์ที่รับค่าที่อ่านได้ */ echo “$get[0] => $get[1] <br>”; echo “$get[key] => $get[value]”; PHP Programming
ฟังก์ชัน end รูปแบบการใช้งาน void end (array arr); เป็นคำสั่งที่ใช้เลื่อน pointer ที่ชี้ตำแหน่งที่อยู่ของข้อมูลปัจจุบันไปยังตำแน่งที่อยู่สุดท้ายของรายการข้อมูลของอะเรย์นั้น PHP Programming
ตัวอย่าง $sort = array ( 50, 40, 30, 20 ); echo current($sort).”<br>”// แสดงค่า 50 end($sort); // เลื่อน pointer ไปยังข้อมูลตัวสุดท้าย echo current($sort); // แสดงค่า 20 PHP Programming
ฟังก์ชัน key รูปแบบการใช้งานฟังก์ชัน mixed key (array arr); เป็นคำสั่งที่ใช้ในการตรวจสอบว่าตำแหน่งปัจจุบันอยู่ที่ pointer ชี้ข้อมูลในอะเรย์อยู่นั้นดัชนีของข้อมูลนั้นมีค่าเป็นอะไร PHP Programming
ตัวอย่าง $sort = array (“start”=>50,40,30,”stop”=>20); echo key($sort).”<br>”; // แสดงค่าดัชนีปัจจุบันที่ pointer ชี้อยู่ end($sort); // เลื่อน pointer ไปยังข้อมูลตัวต่อไป echo key($sort); Start stop PHP Programming
ฟังก์ชัน list รูปแบบการใช้งาน void list (var1,var2,…); PHP Programming
ตัวอย่าง $arr = array(“A”=>10,”B”=>20,”C”=>30); while (list($key,$data)=each($arr)){ echo “$key =>$data<br>”; } A =>10 B =>20 C =>30 PHP Programming
ฟังก์ชัน next รูปแบบการใช้งาน mixed next(array arr) เป็นคำสั่งที่ใช้เลื่อน pointer ให้ชี้ไปยังข้อมูลตัวถัดไปในรายการข้อมูลของอะเรย์ PHP Programming
ตัวอย่าง $sort = array(50,40,30,20); echo current($sort).:”<br>”; // แสดงค่าข้อมูลปัจจุบัน next($sort); // เลื่อน pointer ไปยังข้อมูลตัวต่อไป echo current($sort); // แสดงค่าข้อมูลหลังจากเลื่อน pointer 50 40 PHP Programming
ฟังก์ชัน prev รูปแบบการใช้งาน mixed prev (array arr) เป็นคำสั่งที่ใช้เลื่อน pointer ให้ชี้ไปยังข้อมูลตัวก่อนหน้านี้ที่มีการเลื่อน pointer มาในรายการข้อมูลของอะเรย์ PHP Programming
ตัวอย่าง 50 40 $sort = array(50,40,30,20); echo current($sort).”<br>”; // แสดงค่าข้อมูลปัจจุบัน next($sort); // เลื่อน pointer เดินหน้าไปยังข้อมูลตัวต่อไป echo current($sort).”<br>”; // แสดงค่าข้อมูลหลังจากเลื่อน pointer prev($sort); // เลื่อน pointer ถอยหลังไปยังข้อมูลตัวก่อนหน้านี้ echo current($sort); // แสดงค่าข้อมูลหลังจากเลื่อน pointer 50 40 PHP Programming
ฟังก์ชัน reset รูปแบบการใช้งาน void reset (array arr) เป็นคำสั่งที่กำหนดค่าเริ่มต้นของ pointer ใหม่โดยให้มาเริ่มต้นที่ข้อมูลตัวแรกของรายการข้อมูลทั้งหมดไม่ว่าตอนนั้น pointer จะชี้อยู่ที่ข้อมูลใดก็ตาม PHP Programming
ตัวอย่าง $sort = array(50,40,30,20); echo current($sort).”<br>”; // แสดงค่าข้อมูลปัจจุบัน next($sort); // เลื่อน pointer เดินหน้าไปยังข้อมูลตัวต่อไป echo current($sort).”<br>”; //แสดงค่าข้อมูลหลังจากเลื่อน pointer echo current($sort).”<br>”; // แสดงค่าข้อมูลหลังจากเลื่อน pointer reset($sort); // สั่งให้ pointer ไปเริ่มต้นที่ข้อมูลตัวแรกของรายการ echo current($sort); // แสดงค่าข้อมูลหลังจากใช้คำสั่ง reset PHP Programming
ฟังก์ชัน sizeof รูปแบบการใช้งาน int sizeof (array arr); การทำงานของคำสั่งนี้จะเหมือนกับคำสั่ง count PHP Programming