🟣 PHP

เจาะลึก PHP 8 Array Functions ที่โปรแกรมเมอร์มือใหม่ต้องใช้ให้เป็น

6 นาที 16 views บันทึกเป็น PDF
เจาะลึก PHP 8 Array Functions ที่โปรแกรมเมอร์มือใหม่ต้องใช้ให้เป็น

เรียนรู้การจัดการข้อมูลด้วย array_map, array_filter, array_merge และ Spread Operator เพื่อเขียนโค้ด PHP ให้สะอาดและมีประสิทธิภาพมากขึ้น

ทำความรู้จักกับ Array ใน PHP และทำไมคุณต้องจัดการมันให้เป็น

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

การเข้าใจฟังก์ชันจัดการ Array จะช่วยให้โค้ดของคุณ Clean Code (โค้ดที่อ่านง่ายและดูแลรักษาง่าย) มากขึ้น แทนที่จะเขียนคำสั่งยาวเหยียด 10 บรรทัด คุณอาจเหลือเพียงบรรทัดเดียว การฝึกฝนทักษะนี้จะทำให้คุณดูเป็นโปรแกรมเมอร์ที่เขียนโค้ดมีประสิทธิภาพ ซึ่งเป็นทักษะที่บริษัทซอฟต์แวร์มองหาในตัวเด็กฝึกงานหรือจูเนียร์โปรแกรมเมอร์ครับ

เปรียบเทียบง่ายๆ ครับ ถ้าคุณมีตะกร้าผลไม้ (Array) แล้วอยากหยิบเฉพาะแอปเปิลออกมา หรืออยากเปลี่ยนผลไม้ทุกลูกให้กลายเป็นน้ำผลไม้ การใช้ฟังก์ชันเหล่านี้ก็เหมือนมี "เครื่องทุ่นแรง" ที่ทำงานแทนคุณ แทนที่คุณจะต้องหยิบทีละลูกด้วยมือตัวเองครับ

แปลงร่างข้อมูลด้วย array_map() และคัดแยกด้วย array_filter()

array_map() คือฟังก์ชันที่ใช้ "แปลง" ข้อมูลทุกตัวใน Array โดยใช้กฎเกณฑ์เดียวกัน ส่วน array_filter() คือฟังก์ชันที่ใช้ "กรอง" ข้อมูล โดยเลือกเก็บเฉพาะตัวที่ตรงเงื่อนไขที่คุณกำหนดไว้ สองตัวนี้คือเครื่องมือพื้นฐานที่โปรแกรมเมอร์ใช้บ่อยที่สุดในการเตรียมข้อมูลก่อนแสดงผลหน้าเว็บครับ

จุดที่มือใหม่มักพลาดคือการลืมว่าฟังก์ชันเหล่านี้ไม่ได้เปลี่ยนค่าใน Array เดิมโดยตรง แต่มันจะ "สร้าง Array ใหม่" ขึ้นมาให้เสมอ ดังนั้นอย่าลืมกำหนดตัวแปรใหม่มารับค่าผลลัพธ์ด้วยนะครับ มิฉะนั้นข้อมูลที่คุณประมวลผลไปจะหายไปโดยไม่มีใครเก็บไว้ครับ

// ตัวอย่างการใช้ array_map และ array_filter
$prices = [100, 200, 300, 400];

// ใช้ array_map เพื่อลดราคาลง 10% ทุกรายการ
$discounted = array_map(fn($price) => $price * 0.9, $prices);

// ใช้ array_filter เพื่อเลือกเฉพาะสินค้าที่ราคามากกว่า 200
$expensive = array_filter($prices, fn($price) => $price > 200);

print_r($discounted); // ผลลัพธ์: [90, 180, 270, 360]
print_r($expensive);  // ผลลัพธ์: [2 => 300, 3 => 400]

ในโค้ดด้านบน เราใช้ Arrow Function (รูปแบบการเขียนฟังก์ชันแบบสั้นใน PHP) เพื่อจัดการข้อมูล $discounted จะเป็นการคูณ 0.9 เข้าไปทุกค่า ส่วน $expensive จะคัดกรองเฉพาะตัวที่มากกว่า 200 โดยที่ Array ต้นฉบับ $prices จะยังคงเหมือนเดิมทุกประการครับ

รวมพลัง Array ด้วย array_merge() และ Spread Operator (...)

เมื่อคุณมีข้อมูลหลายชุดที่แยกกันอยู่และต้องการรวมมันเข้าด้วยกัน array_merge() คือฟังก์ชันมาตรฐานที่ทำหน้าที่นำ Array สองตัวมาต่อกันครับ แต่ในยุค PHP 8 เรามีวิธีที่ทันสมัยและยืดหยุ่นกว่านั้นคือการใช้ Spread Operator หรือเครื่องหมาย ... ที่ช่วยให้การรวมข้อมูลดูสะอาดตาและอ่านง่ายขึ้นมากครับ

การใช้ Spread Operator ไม่เพียงแต่ใช้รวม Array เท่านั้น แต่ยังใช้ในการส่งค่าเข้าไปในฟังก์ชันหรือสร้าง Array ใหม่โดยแทรกค่าเดิมเข้าไปได้สะดวกมากครับ นี่คือเทคนิคที่ช่วยให้โค้ดของคุณดูเป็นมืออาชีพและลดความซับซ้อนในการจัดการโครงสร้างข้อมูลที่ซ้อนทับกันได้ดีเยี่ยมครับ

// รวม Array ด้วย array_merge และ Spread Operator
$part1 = ['PHP', 'JavaScript'];
$part2 = ['Python', 'Go'];

// วิธีเดิม
$all = array_merge($part1, $part2);

// วิธีใหม่ด้วย Spread Operator
$modernAll = [...$part1, ...$part2, 'Java'];

print_r($modernAll); 
// ผลลัพธ์: ['PHP', 'JavaScript', 'Python', 'Go', 'Java']

สังเกตว่า ...$part1 คือการ "แตก" สมาชิกใน Array ออกมาวางเรียงกัน ทำให้เราสามารถรวมกี่ Array ก็ได้ หรือจะเพิ่มค่าใหม่เข้าไปตรงกลางระหว่างการรวมได้ง่ายๆ เลยครับ เป็นเทคนิคที่แนะนำให้ฝึกใช้ให้คล่องตั้งแต่วันนี้เลยครับ

ตรวจสอบข้อมูลด้วย in_array() และบทสรุปการใช้งานจริง

in_array() คือฟังก์ชันที่เอาไว้เช็คว่า "มีค่านี้อยู่ใน Array หรือไม่" มันจะส่งค่ากลับมาเป็น Boolean (ค่าความจริง คือ true หรือ false) ซึ่งจำเป็นมากเวลาทำระบบล็อกอิน หรือเช็คสิทธิ์ผู้ใช้งานครับ เช่น การตรวจสอบว่ายูสเซอร์นี้มีสิทธิ์เข้าถึงหน้าแอดมินหรือไม่ เป็นต้น

สรุปการนำไปใช้จริง: ในโปรเจกต์เว็บแอปพลิเคชันของคุณ คุณอาจจะต้องดึงรายการ ID สินค้าที่ลูกค้าเลือกไว้ในตะกร้าสินค้ามาเก็บใน Array จากนั้นใช้ in_array() เพื่อเช็คว่าสินค้าชิ้นที่กำลังดูอยู่ถูกเพิ่มลงตะกร้าไปหรือยัง ถ้ามีแล้วให้เปลี่ยนปุ่มเป็น "ในตะกร้าแล้ว" แทนที่จะเป็น "เพิ่มลงตะกร้า" นี่คือ หัวใจของการสร้าง User Experience (ประสบการณ์การใช้งาน) ที่ดีครับ

$cart = ['apple', 'banana', 'orange'];

// ตรวจสอบว่ามี 'banana' ในตะกร้าไหม
if (in_array('banana', $cart)) {
    echo "คุณมีกล้วยอยู่ในตะกร้าแล้ว!";
} else {
    echo "เพิ่มกล้วยลงตะกร้าเลย!";
}

การฝึกฝนฟังก์ชันเหล่านี้ไม่ได้ทำให้คุณเขียนโค้ดได้เร็วขึ้นเท่านั้น แต่ยังช่วยให้คุณเขียนโค้ดที่ Maintainable (บำรุงรักษาง่าย) ในระยะยาว เมื่อคุณต้องทำงานเป็นทีม การใช้ฟังก์ชันมาตรฐานเหล่านี้จะช่วยให้เพื่อนร่วมทีมเข้าใจโค้ดของคุณได้ทันทีโดยไม่ต้องเสียเวลาอธิบายครับ ลองนำไปปรับใช้ในโปรเจกต์ถัดไปของคุณดูนะครับ!

แชร์บทความ

Facebook X LINE

บทความที่เกี่ยวข้อง

สร้างระบบ Authentication ด้วย PHP 8: สอนทำระบบ Login และ Hash รหัสผ่านให้ปลอดภัย
PHP

สร้างระบบ Authentication ด้วย PHP 8: สอนทำระบบ Login และ Hash รหัสผ่านให้ปลอดภัย

เรียนรู้วิธีสร้างระบบ Authentication ด้วย PHP 8 ตั้งแต่การสมัครสมาชิก การ Hash รหัสผ่านด้วย password_hash ไปจนถึงการทำระบบ Login และ Protected Dashboard

1 month ago 7 นาที
22 views
สอน PHP 8 จัดการฐานข้อมูล CRUD: วิธี UPDATE และ DELETE ข้อมูลอย่างปลอดภัยด้วย Bind Parameters
PHP

สอน PHP 8 จัดการฐานข้อมูล CRUD: วิธี UPDATE และ DELETE ข้อมูลอย่างปลอดภัยด้วย Bind Parameters

เรียนรู้วิธีแก้ไขและลบข้อมูลในฐานข้อมูลด้วย PHP 8 และ PDO พร้อมเทคนิคการใช้ Bind Parameters เพื่อป้องกัน SQL Injection สำหรับมือใหม่หัดเขียนเว็บ

1 month ago 6 นาที
21 views
สอนเขียน PHP 8 เชื่อมต่อฐานข้อมูลด้วย PDO ทำ CRUD อย่างปลอดภัย ป้องกัน SQL Injection
PHP

สอนเขียน PHP 8 เชื่อมต่อฐานข้อมูลด้วย PDO ทำ CRUD อย่างปลอดภัย ป้องกัน SQL Injection

เรียนรู้วิธีจัดการฐานข้อมูลด้วย PHP 8 ผ่าน PDO อย่างมืออาชีพ พร้อมเทคนิคการใช้ Prepared Statements เพื่อป้องกัน SQL Injection สำหรับมือใหม่หัดเขียนเว็บ

1 month ago 7 นาที
22 views