rectangle-historyUpdate Array Items

นภัทรศิลป์ เจรจาศิลป 630710658

Update Array Item

คือ การอัพเดตค่าในอาร์เรย์(array)โดยที่มีค่าอยู่ในอาร์เรย์ เรียกให้เข้าใจได้ง่าย ก็คือ การเปลี่ยนแปลงค่าของข้อมูลที่อยู่ในอาร์เรย์ โดยการอัพเดตค่าในอาร์เรย์ที่มีข้อมูลอยู่แล้ว สามารถทำได้จากการอ้างอิงเลขจากเลข index ของเลข index ในอาร์เรย์ และ การใช้ key name หรือเรียกว่า ชื่อที่ใช้เรียกแทนตัวเลขของ index ที่ไว้สำหรับการเชื่อมโยงอาร์เรย์

หลายคนคงสงสัยว่าเลข index และ keyname คืออะไร

ขออธิบายก่อนว่า อาร์เรย์(array) คือ ข้อมูลที่เก็บอยู่ในรูปแบบของลำดับที่ โดยอาร์เรย์จะแตกต่างกับข้อมูลตัวแปรทั่วไป คือตัวแปรตัวอื่นจะถูกเก็บอยู่ในหน่วยความจำของแบบไม่ต่อเนื่องกัน ส่วนตัวแปรอาร์เรย์จะถูกเก็บอยู่ในหน่วยความจำตำแหน่งที่ต่อเนื่องกัน ซึ่งข้อมูลที่เราเก็บอยู่ในอาร์เรย์เราจะเรียกว่าค่าที่อยู่ในอาร์เรย์หรือข้อมูลที่อยู่ในอาร์เรย์(value) และถ้าจะทำการอ้างถึงข้อมูลตัวนั้นในอาร์เรย์เราจึงมีเลขอินเด็กซ์(index) เพื่อไว้ใช้อ้างอิงถึงตัวตำแหน่งข้อมูลที่เราต้องการ ในส่วนของ Keyname ก็จะมีความคล้ายกับเลขอินเด็กซ์(index) แต่ Keyname จะเปรียบเสมือนชื่อเรียกที่ใช้แทนอ้างอิงถึงตำแหน่ง เช่น เราต้องการนำข้อมูลของบุคคลเข้าไปในอาร์เรย์ โดยที่เรามีข้อมูลชื่อ,อายุ,เพศ เราอาจจะใช้ Keyname ว่า name,age,gender ตามลำดับข้อมูลที่เราเก็บ

การอัพเดตข้อมูลในอาร์เรย์แบบการอ้างอิงจากเลข index

➜ ตัวอย่าง ✿

<?php  
$cars = array("Volvo", "BMW", "Toyota");
$cars[1] = "Ford";
var_dump($cars);
?>

➜ Output ✿

array(3) {
  [0]=>
  string(5) "Volvo"
  [1]=>
  string(4) "Ford"
  [2]=>
  string(6) "Toyota"
}
  • PHP : จะมีการเปลี่ยนค่าในอาร์เรย์ที่ index ที่ 2 จาก BMW เป็น Ford

  • C : จะเป็นการเปลี่ยนแปลงค่าในอาร์เรย์ index ที่ 2 จาก 30 ให้เป็น 100 (ในภาษา c เวลาที่เราจะพิมพ์ค่าอาร์เรย์ออกมาเราจะมีการสร้าง for loop เพื่อทำการวนค่าให้ครบจำนวนช่องที่อาร์เรย์เก็บไว้)

  • Java : ในโค้ดมีการเปลี่ยนแปลงข้อมูลใน index ที่ 0 จาก Volvo เป็น Opel

  • Python : โค้ดนี้จะมีการสร้างอาร์เรย์ให้มีเลข 1-10 และให้เปลี่ยนแปลงข้อมูลของ index ที่ 0 จาก 1 ให้เป็น -1 และเปลี่ยนแปลงครั้งที่ 2 คือเปลี่ยนจากตำแหน่งที่ 2-7 ให้เป็น 22-27 (โดยใน Python อาจจะไม่ได้เรียกว่าเป็นอาร์เรย์โดยทีเดียวเพราะ Python มีการเก็บข้อมูลแบบ List ที่มีลักษณะคล้ายกับอาร์เรย์ที่มีขนาดแบบไดนามิก)

circle-info

เพิ่มเติม: ค่าแรกในอาร์เรย์จะอยู่ในเลข index ที่ 0

การอัพเดตค่าในอาร์เรย์จากการเชื่อมโยงในอาร์เรย์ แบบใช้ keyname ในการเปลี่ยนค่า

➜ ตัวอย่าง ✿

➜ Output ✿

  • PHP : จากโค้ดข้างต้นเป็นการเปลี่ยนค่า keyname ของ year จาก 1964 เป็น 2024

  • C : เนื่องด้วยภาษา c ไม่มีการกำหนดค่าแบบ keyname จึงทำให้เราไม่สามารถอัพเดตข้อมูลแบบใช้ keyname แทนได้

  • Java : โดยใน java การที่จะทำให้อาเรย์เป็นแบบ keyname เราจึงนำ Hashmap มาใช้ด้วยซึ่งก็จะมีลักษณะคล้ายกัน โดยในโค้ดเราจะมีการเปลี่ยนค่าของ Banana จาก 2 ให้เป็น 5 ซึ่งเราใช้ฟังก์ชัน put() ที่เป็นการเพิ่มและแก้ไขข้อมูลเข้าไปแทน

  • Python : โดยในโค้ดนี้ได้มีการเก็บข้อมูลอยู่ในลักษณะ dictionary ซึ่งก็มีลักษณะคล้ายกับการเก็บในอาเรย์ที่ใช้ keyname โดยในโค้ดข้างต้นได้มีการใช้ฟังก์ชัน update() ซึ่งสามารถไว้เพิ่มข้อมูลหรือแก้ไขข้อมูลได้ ในโค้ดนี้เราจึงได้ทำการแก้ไขข้อมูล ของ keyname ที่ชื่อ james,danny ให้ข้อมูลจาก 1828,9310 เป็น 2000,9000 ตามลำดับ

Update Array Items in a Foreach Loop

คือ การอัพเดตค่าอาร์เรย์แบบวนซ้ำด้วยการใช้ Foreach การเปลี่ยนแปลงข้อมูลในอาร์เรย์แบบใช้การวนซ้ำแบบ Foreach มีหลายวิธี

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

circle-info

เพิ่มเติม : foreach loop กับ for loop มีความแตกต่างกันตรงที่ foreach loop เน้นการเข้าถึงค่าของแต่ละช่องในลำดับ โดยไม่ต้องการเลข index แต่ for loop มักจะต้องการตัวเลขในการวนลูปที่ชัดเจน จึงมักใช้กับตัวแปรที่มีการกำหนดค่าเริ่มต้น, เงื่อนไข และการเพิ่มหรือลดค่าของตัวนับ ซึ่งจะช่วยให้สามารถควบคุมจำนวนการวนซ้ำได้

➜ ตัวอย่าง ✿

➜ Output ✿

  • PHP : ในตัวอย่างเป็นการเปลี่ยนแปลงค่าที่อยู่ในอาร์เรย์ทั้งหมดให้กลายเป็นคำว่า Ford

  • C : ซึ่งในภาษา C ไม่มี foreach loop แต่เราสามารถใช้ for loop เพื่อนำไปวนค่าในอาร์เรย์คล้ายกับ foreach loop โดยในโค้ดข้างต้นจะเปลี่ยนข้อมูลที่อยู่ในอาร์เรย์ให้กลายเป็น -1

  • Java : เนื่องด้วยการใช้ foreach loop จะทำให้ยากต่อการเปลี่ยนแปลงค่า นอกจากเราจะทำการคำนวณเลขและนำไปเก็บอีกตัวแปรหนึ่ง ดังนั้นเราจึงยก for loop มาให้ดูแทน

  • Python : โดยในโค้ดจะเป็นการเปลี่ยนแปลงข้อมูลจากตัวอักษรตัวเล็กให้เปลี่ยนเป็นข้อมูลตัวใหญ่ทั้งหมด

circle-exclamation

➜ ตัวอย่าง ✿

➜ Output ✿

  • จากโค้ดข้างต้นเป็นการไม่ใส่ฟังก์ชัน unset($x); ต่อท้ายและยังมีการเปลี่ยนแปลงค่าต่อจากลูป

ฟังก์ชันในการอัพเดตข้อมูลในอาร์เรย์

โดยในการอัพเดตอาร์เรย์ของ PHP เรายังสามารถใช้ฟังก์ชันในการอัพเดตข้อมูลได้ด้วย

  • array_replace()

เป็นฟังก์ชันที่ใช้สร้างอาร์เรย์ขึ้นมาอีกตัวและใช้การอ้างอิงถึงตำแหน่งที่เราต้องการจะเปลี่ยนค่าจากอาร์เรย์ที่เราต้องการเปลี่ยนแปลง

➜ ตัวอย่าง ✿

➜ output ✿

  • จากตัวอย่างที่ 1 : เป็นการใช้ฟังก์ชัน array_replace() แบบอ้างอิงถึงเลข index โดยเราจะมีการเปลี่ยนแปลงค่าในตำแหน่งที่ 0 จากคำว่า orange ให้เป็น grape และมีการเพิ่มตำแหน่งที่ 4 เข้ามาคือคำว่า cherry

  • จากตัวอย่างที่ 2 : เป็นการใช้ฟังก์ชัน array_replace() แบบอ้างอิงถึงตำแหน่งด้วยการใช้ keyname โดยเรามีการเปลี่ยนแปลงข้อมูลในส่วนของ citrus จาก orange, lemon เป็น grapefruit และมีการเปลี่ยนข้อมูลในส่วนของ pome จาก apple เป็น kumquat, citron

  • array_splice() , array_unshift()

โดยฟังก์ชันนี้ส่วนใหญ่จะนิยมใช้ในการลบหรือแทนที่ส่วนของอาร์เรย์ด้วยค่าของอินเด็กซ์ ซึ่งฟังก์ชันนี้ก็สามารถใช้ในการแทรกค่าใหม่ในตำแหน่งที่ต้องการได้ โดยมีอีกฟังก์ชันที่ใกล้เคียงกับฟังก์ชันนี้คือ array_unshift() โดยฟังก์ชันนี้จะเป็นการเปลี่ยนแปลงข้อมูลในตำแหน่งแรกและนำข้อมูลที่มีอยู่แล้วไปต่อท้ายในข้อมูลที่เข้ามาใหม่

➜ ตัวอย่าง ✿

➜ output ✿

  • จากตัวอย่างที่ 1 : จะเป็นการใช้ฟังก์ชัน array_splice() ซึ่งเป็นการแทรกข้อมูลใหม่ที่ตรงกับ index ที่เราต้องการ ในตัวอย่างเป็นการเปลี่ยนแปลงข้อมูลใน index ที่ 1 จาก green เป็นคำว่า orange

  • จากตัวอย่างที่ 2 : จะเป็นการใช้ฟังก์ชัน array_unshift() ซึ่งเป็นฟังก์ชันที่คล้ายตัวอย่างที่ 1 แต่แตกต่างกันตรงที่ว่า ในฟังก์ชันนี้จะเป็นการแทรกค่าที่มีอยู่ก่อนให้ข้อมูลที่เรามีอยู่ไปอยู่ด้านหลังของข้อมูลใหม่ ในตัวอย่างคือเรามีข้อมูลในตำแหน่งที่ 0,1 จาก orange,banana ตามลำดับ กลายเป็นข้อมูลในตำแหน่งที่ 0,1 เป็น apple,raspberry ตามลำดับและ orange,banana จะไปอยู่ในตำแหน่งที่ 2,3 ตามลำดับ


Video Clip

Presentation


Reference

Array :

  • กิตติ ภักดีวัฒนะกุล. (2547). สมิทธ์ PHP (พิมพ์ครั้งที่ 2). กรุงเทพฯ: เคทีพี คอมแอนด์คอนซัลท์.

  • GeeksforGeeks. (2024, 12 ตุลาคม). Array data structure - guide. GeeksforGeeks. GeeksforGeeksarrow-up-right

PHP Update array items : W3Schools. (n.d.). PHP arrays update. W3Schools. w3schoolsarrow-up-right

Example for C , C Array :

Java Array :

Example for java : Irfan, M. (2023, 12 ตุลาคม). Difference between HashMap and Map in Java. DelftStack. delftstackarrow-up-right

Python Array :

Example for Python :

Fuction for PHP : The PHP Group. (n.d.). Array functions. In PHP manual. phparrow-up-right

foreach loop and for loop :

  • Python Software Foundation. (n.d.). For statements. In The Python tutorial. pythonarrow-up-right

  • Oracle. (n.d.). The for statement. In The Java™ Tutorials. oraclearrow-up-right

  • Goragod. (2558, 2 ตุลาคม). For และ foreach ใช้อันไหนดีกว่า? Goragod. goragodarrow-up-right

Last updated