PHP Basic Array

PHP Array เรื่อง Basic ที่ต้องใช้ให้คล่อง

เรื่องพื้นฐาน ที่เราต้องใช้ให้คล่องมากพอ ในการเขียนระบบใหญ่ๆและการใช้งาน php framework ที่เราต้องพบเจอบ่อยๆก็คือ Array มันทำอะไรได้บ้าง และทำอย่างไร

PHP Basic Array

PHP Basic Array

แต่ไหนแต่ไรมาผมไม่เคยมองการเขียนโปรแกรมเงื่อนไขใดๆว่าเป็นเรื่องง่ายๆเลย มันยากเสมอ แต่สิ่งที่จะพาเราหลุดจากความยากต่างๆได้นั้นคือ  เรื่องพื้นฐาน ที่เราต้องใช้ให้คล่องมากพอ ในการเขียนระบบใหญ่ๆและการใช้งาน php framework ที่เราต้องพบเจอบ่อยๆก็คือ Array มันทำอะไรได้บ้าง และทำอย่างไร

การส่งข้อมูลและการรับค่าเป็น Array สะดวกและยืดหยุ่นมาก เราสามารถที่จะจัดการข้อมูลแบบเป็น ชุดข้อมูล ได้ในครั้งเดียว ซึ่งนั้นทำให้ PHP Framework เกือบทั้งหมดใช้ Array เป็นการรับค่า ส่งค่า และทำสิ่งต่างๆ

รูปแบบของ Array จะเป็นตัวแปร 1 ตัวที่สามารถจัดเก็บค่าได้หลายค่า ในลักษณะเริ่มต้นจาก 0 การประกาศค่าจะทำได้แบบนี้

Declare array variable

$aProvince = ["กรุงเทพ","นนทบุรี","ปทุมธานี","สมุทรปราการ","อยุธยา","นครปฐม"];

ซึ่ง Key ลำดับของข้อมูลชุดนี้จะเริ่มจาก 0,1,2,3,4,5,6 การแสดงค่าออกมาถ้าเราจะเลือกที่ค่าใดค่าหนึ่ง จึงจะต้องทำการชี้เข้าไปที่ค่าที่เราเก็บไว้ให้ถูกตำแหน่ง

echo $aProvince[0];

ผลลัพธ์ที่ได้ออกมาจะเป็น ” กรุงเทพ ”

 

View data in array

แต่ถ้าหากเราต้องการแสดงข้อมูลทั้งหมดของ Array ออกมาแสดงเราก็จะทำได้หลายทาง ผมจะพูดแค่ 2 ทางคือการใช้ function for กับการใช้ foreach

การใช้ For แสดงข้อมูลทั้งหมดใน Array

เนื่องจากการใช้ for จะอยู่ในรูปแบบของการกำหนดค่าให้ นับ แล้ววน Loop ไปเรื่อยๆจนกว่าจะหมด ดังนั้นการใช้ for เราเลยจำเป็ฯที่จะต้องมีอะไรมาให้นับซะก่อน เราจึงจะใช้ function count ของ php เข้ามาช่วย ตามตัวอย่างนี้

$aProvince = ["กรุงเทพ","นนทบุรี","ปทุมธานี","สมุทรปราการ","อยุธยา","นครปฐม"];
$iCount = count($aProvince);
for ($i = 0; $i<$iCount; $i++) {
  echo $aProvince[$i]."<br>";
}

ผลลัพธ์ที่ได้ออกมาจะเป็นแบบนี้

php array 1

php array 1

กับอีกรูปแบบหนึ่งคือการใช้ foreach

$aProvince = ["กรุงเทพ","นนทบุรี","ปทุมธานี","สมุทรปราการ","อยุธยา","นครปฐม"];
foreach ($aProvince AS $value)
{
 echo $value."<br>";
}

ค่าที่ได้ออกมาจะเหมือนกันกับ for loop

แต่สำหรับการเพิ่มค่าเข้ามาใน Array เราสามารถทำได้โดยการเพิ่มค่าเข้ามาในตัวแปรตรงๆได้เลยแบบนี้

$aProvince[6] = "เชียงใหม่";

ทีนี้หากเราอยากเปลี่ยนค่าบางค่าที่มีการสร้างมาแล้วใน array จะต้องทำอย่างไร เราสามารถทำได้เลยก่อนที่เราจะเอามาแสดงค่าใน Loop ของเรา

$aProvince = ["กรุงเทพ","นนทบุรี","ปทุมธานี","สมุทรปราการ","อยุธยา","นครปฐม"];
$aProvince[2] = "เชียงใหม่";
foreach ($aProvince AS $key => $value)
{
 echo $key." = ".$value."<br>";
}

แบบนี้ค่าใน array ลำดับที่ 3 ก็จะถูกเปลี่ยนไปจาก ปทุมธานี เป็น เชียงใหม่แทนที่

php array 2

php array 2

unset()

แล้วหากเราต้องการจะลบค่าใน array ออกไปเราก็ใช้คำสั่งอย่าง unset มาช่วยได้แบบนี้

unset($aProvince[2]);

reset()

function unset มีหน้าที่ลบข้อมูลออกไปจาก array แต่ function reset กลับทำหน้าที่เลือกสมาชิกตัวแรกที่อยู่ใน array ออกมาให้เราแล้วลบข้อมูลอื่นๆออกไป

$aProvince = ["กรุงเทพ","นนทบุรี","ปทุมธานี","สมุทรปราการ","อยุธยา","นครปฐม"];
$first_item = reset($aProvince);
echo $first_item;

ค่าที่ได้ออกมาก็จะเป็นเพียง กรุงเทพ ข้อมูลเดียวเท่านั้น การทำงานของ reset จะใกล้เคียงกันกับ function end() แต่ end จะให้ค่าข้อมูลลำดับสุดท้ายกลับมาหาเราแทน

end()

$aProvince = ["กรุงเทพ","นนทบุรี","ปทุมธานี","สมุทรปราการ","อยุธยา","นครปฐม"];
$last_item = end($aProvince);
echo $last_item;

array_push()

แล้วหากว่าเราต้องการเพิ่มข้อมูลใหม่เข้าไปยังลำดับสุดท้ายของ array เราจะทำอย่างไรถ้าเรายังไม่รู้ว่าข้อมูลทั้งหมดมีเท่าไหร่ เราต้องหยิบเอา function อย่าง array_push() เข้ามาช่วย

$aProvince = [“กรุงเทพ”,”นนทบุรี”,”ปทุมธานี”,”สมุทรปราการ”,”อยุธยา”,”นครปฐม”];
array_push($aProvince,”เชียงใหม่”);

ค่าที่ได้ออกมาจะเป็นแบบนี้

php array push

php array push

array_unshift()

ถ้าหากเราต้องการใส่ค่าใหม่ลงไปจากทางข้อมูลตัวแรก เราต้องใช้ unshift เข้ามาแทนถึงจะทำได้แบบนี้ครับ

$aProvince = [“กรุงเทพ”,”นนทบุรี”,”ปทุมธานี”,”สมุทรปราการ”,”อยุธยา”,”นครปฐม”];
array_unshift($aProvince,”เชียงใหม่”);

ข้อมูลจะออกมาในลักษณะที่ เชียงใหม่ มาที่ Key 0

php array unshift

php array unshift

array_pop()

ทีนี้หากเราต้องการลบค่าออกจาก array แต่เรียงลำดับจากทางด้านหลังต้องทำยังไง ใช้  array_pop เข้ามาช่วย

$aProvince = ["กรุงเทพ","นนทบุรี","ปทุมธานี","สมุทรปราการ","อยุธยา","นครปฐม"];
array_pop($aProvince);

ค่าที่ได้จังหวัดนครปฐมก็จะหายไป

php array pop

php array pop

 

array_shift()

ถ้าเราต้องการดึงข้อมูลตัวแรกออกไปจาก array ของเราจะทำได้อย่างไร ใช้ function array_shift เข้ามาช่วย

$aProvince = ["กรุงเทพ","นนทบุรี","ปทุมธานี","สมุทรปราการ","อยุธยา","นครปฐม"];
array_shift($aProvince);

ข้อมูล กรุงเทพ ก็จะหายไป

php array shift

php array shift

 

array_merge()

ในกรณีที่เรามีข้อมูล array อยู่ 2 ชุดแต่อยากรวมกันให้เป็น 1 เดียวทำได้โดยการเรียกใช้ array_merge แบบนี้

$aProvinceA = ["กรุงเทพ","นนทบุรี","ปทุมธานี","สมุทรปราการ","อยุธยา","นครปฐม"];
$aProvinceB = ["เชียงใหม่","เชียงราย","ลำพูน","ลำปาง","แม่ฮ่องสอน"];
$aProvince = array_merge($aProvinceA,$aProvinceB);

ผลลัพธ์ที่ได้คือข้อมูลของ array ทั้ง 2 ตัวจะรวมกัน

php array merge

php array merge

การเรียงลำดับข้อมูลใน array ด้วย sort()

การเรียงข้อมูลด้วย sort จะสามารถเรียงได้หลายกรูปแบบทั้งจากน้อยไปมากและจากมากไปน้อย

$aProvinceA = ["กรุงเทพ","นนทบุรี","ปทุมธานี","สมุทรปราการ","อยุธยา","นครปฐม"];
sort($aProvince);
foreach ($aProvince AS $value)
{
 echo $value."<br>";
}

จะให้ผลลัพธ์แบบนี้

php array sort

php array sort

กับอีกแบบคือเรียงสลับกันด้วย rsort()

วิธีใช้

$aProvince = ["กรุงเทพ","นนทบุรี","ปทุมธานี","สมุทรปราการ","อยุธยา","นครปฐม"];
rsort($aProvince);
foreach ($aProvince AS $value)
{
 echo $value."<br>";
}

จะให้ผลลัพธ์เรียงกลับด้าน

php array rsort

php array rsort

array_slice()

เป็น function ที่ใช้สำหรับตัดเอาเฉพาะบางค่าที่อยูใน array ที่เราต้องการเท่านั้น

$aProvinceA = ["กรุงเทพ","นนทบุรี","ปทุมธานี","สมุทรปราการ","อยุธยา","นครปฐม"];
$aProvince = array_slice($aProvinceA, 3, 2);
foreach ($aProvince AS $value)
{
 echo $value."<br>";
}

จากตัวอย่างผมเลือกเอาเพียงค่าใน array ตาม key ที่เริ่มจาก 3 และต้องการเพียงแค่ 2 ตำแหน่งเท่านั้น

php array slice

php array slice

แต่หากเราอยากได้ค่าที่ถูกตัดออกมาจาก function slice เราจะต้องใช้ function splice ช่วย

array_splice()

function นี้จะทำการคืนค่าข้อมูลที่ไม่ได้ถูกดึงออกไปแสดงมาให้เรา

$aProvinceA = ["กรุงเทพ","นนทบุรี","ปทุมธานี","สมุทรปราการ","อยุธยา","นครปฐม"];
$aProvince = array_splice($aProvinceA, 3, 2);
foreach ($aProvince AS $value)
{
 echo $value."<br>";
}
print_r($aProvinceA);

ผลลัพธ์ที่ได้คือ

php array splice

php array splice

วิธีการใช้ array ยังมีอีกมากมายทั้งเรื่องของ array แบบ Multi dimension หรือที่เราเรียกกันว่า หลายมิติ  เอาไว้จะมาต่อกันวันหลังสำหรับบทนี้น่าจะยาวมากไปแล้ว ไว้เจอกันใหม่บทหน้าครับ

 

 

 

EventOn - WordPress Event Calendar Plugin

EventOn – WordPress Event Calendar Plugin