เทคนิคเพิ่มเติมเกี่ยวกับอาร์เรย์

PHP Knowledge เป็น บอร์ดรวามความรู้ php เน้นบทความ แนวทางการเขียนโปรแกรม บันทึกกันลืม เพื่อให้สมาชิกได้เขียนความรู้ที่ตัวเองมีให้สมาชิกท่านอื่นๆ ได้ เข้ามาอ่าน และ ไว้อ่านเองกันลืมด้วย

Moderator: mindphp, ผู้ดูแลกระดาน

M034
PHP Super Member
PHP Super Member
โพสต์: 258
ลงทะเบียนเมื่อ: 28/03/2016 10:21 am
ติดต่อ:

เทคนิคเพิ่มเติมเกี่ยวกับอาร์เรย์

โพสต์ที่ยังไม่ได้อ่าน โดย M034 »

การเปลี่ยนลำดับอาร์เรย์ไม่ให้เริ่มจาก 0
ซึ่งปกติแล้วลำดับของอาร์เรย์จะเริ่มจาก 0 แล้วต่อเนื่งไปจนสิ้นสุดอาร์เรย์ เช่น $a[0],$a[1],...แต่ถ้าเราไม่ต้องการให้สมาชิกตัวแรกมีลำดับเป็น 0 ก็สามารถกำหนดเป็นค่าตัวเลขอย่างอื่นได้ตามต้องการ แม้กระทั่งจะเริ่มจากลำดับที่ติดลบก็ยังได้ โดยการกำหนดเลขลำดับเริ่มต้นที่ต้องการให้เป็น "คีย์" ของสมาชิกตัวแรก เช่น

โค้ด: เลือกทั้งหมด

$arr =array(1=>"Sunday","Monday","Tuesday");    //ให้ลำดับเริ่มจาก 1,2,3,..
echo $arr[0];             //Error เพราะไม่มีลำดับที่ 0
$arr2 = array(-1=>"Red","Pink","White","Blue");    //ลำดับเริ่มจาก -1,0,1....
การลบสมาชิกของอาร์เรย์
หากเราต้องการจะลบค่าใน array ออกไปเราก็ใช้คำสั่ง unset() เพราะ php ไม่มีฟัก์ชั่นในการลบสมาชิกของอาร์เรย์ออกไปโดยตรง

โค้ด: เลือกทั้งหมด

uset($arr[3]);      //ยกเลิกสมาชิกลำดับที่ 3


ถ้าต้องการยกเลิกอาร์เรย์เป็นลำดับต่อเนื่องกัน สามารถใช้คำสั่ง array_splice() ได้ เช่น

โค้ด: เลือกทั้งหมด

array_splice($arr,4,3);     //ยกเลิกสมาชิกในอาร์เรย์ตั้งแต่ลำดับ 4 ต่อไปอีกจำนวน 3 ตัว


หลังการลบสมาชิกบางส่วนออกไป ทำให้สมาชิกในลำดับถัดไป (ถ้ามี) เลื่อนมาแทนที่

การแทรกค่าจากอาร์เรย์ Key/Value ลงในสตริง
ตัวแปรที่ไม่เป็นอาร์เรย์แบบที่ไม่ใช่ Key/Value สามารถนำไปแทรกลงในสตริงได้โดยตรง เหมือนตัวแปรที่เก็บข้อมูลชนิดสตริงหรือตัวเลข เช่น

โค้ด: เลือกทั้งหมด

$a=array('Perl','PHP');
echo "I Love $a[1]";
แต่ถ้าตัวแปรอาร์เรย์แบบ Key/Value จะไม่สามารถแทรกลงไปโดยตรงได้จะต้องใช้เครื่องหมายครอบตัวแปรอาร์เรย์นั้นก่อน แต่ควรระวังไม่ให้มีช่องว่างภานใน { } ดูเปรียบเทียบจากโค้ดด้านล่างนะคะ

โค้ด: เลือกทั้งหมด

$a =array('th' =>"Thailand", "jp"=>"Japan");
$str1 = "Made in $a['jp']";    //Error!
$str2 = "Made in {$a['jp']}";  //OK
$str3 = "Made in { $a[ 'jp' ] }";   //Error เพราะมีช่องว่างภายใน { }
การเลือกสมาชิกตัวแรกที่อยู่ในอาร์เรย์
function reset() ทำหน้าที่เลือกสมาชิกตัวแรกที่อยู่ใน array ออกมาให้เราแล้วลบข้อมูลอื่นๆออกไป

โค้ด: เลือกทั้งหมด

$arr = ["Sunday","Monday","Tuesday"];
$a = reset($arr);
echo $a;
ค่าที่ได้ออกมาก็จะเป็นเพียง Sunday ข้อมูลเดียวเท่านั้น การทำงานของ reset จะใกล้เคียงกันกับ function end() แต่ end จะให้ค่าข้อมูลลำดับสุดท้ายกลับมาหาเราแทน

function end()

โค้ด: เลือกทั้งหมด

$arr = ["Sunday","Monday","Tuesday"];
$x = end($arr);
echo $x;

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 74