ป้ายกำกับ: Array_reduce

PHP: การใช้ array_map(), array_filter(), และ array_reduce() แทนการใช้ foreach ในบางกรณีPHP: การใช้ array_map(), array_filter(), และ array_reduce() แทนการใช้ foreach ในบางกรณี

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

“>

ในฐานะ System Specialist และ Senior Architect การจัดการชุดข้อมูล (Collection) ที่ซับซ้อนที่ดึงมาจากระบบหลังบ้าน เช่น PostgreSQL ไม่ใช่แค่การวนลูป (Looping) แต่คือการประมวลผลเชิงฟังก์ชัน (Functional Processing) การทำความเข้าใจถึงเครื่องมือระดับสูงของ PHP อย่าง array_map(), array_filter(), และ array_reduce() จึงเป็นหัวใจสำคัญของการยกระดับโค้ดให้มีประสิทธิภาพสูง

“>

การเปลี่ยนแนวคิดจากการเขียนโค้ดแบบ Imperative (คำสั่ง) ซึ่งเราต้องบอกขั้นตอนทีละขั้น (เช่น ‘ให้สร้างตัวแปร A, จากนั้นให้วนลูป, ถ้าค่านี้เป็นจริง ให้ทำสิ่งนี้…’) ไปสู่แบบ Declarative (ประกาศ) ซึ่งเราเพียงแค่ประกาศว่า ‘ผลลัพธ์ที่ต้องการคืออะไร’ เป็นการยกระดับโค้ดให้มีความกระชับ อ่านง่าย และลดโอกาสเกิด Side Effects ที่ซับซ้อนในการบำรุงรักษา

⚙️ การทำความเข้าใจ Functional Array Functions ใน PHP

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

“>

ในฐานะ System Specialist และ Senior Architect การจัดการชุดข้อมูล (Collection) ที่ซับซ้อนที่ดึงมาจากระบบหลังบ้าน เช่น PostgreSQL ไม่ใช่แค่การวนลูป (Looping) แต่คือการประมวลผลเชิงฟังก์ชัน (Functional Processing) การทำความเข้าใจถึงเครื่องมือระดับสูงของ PHP อย่าง array_map(), array_filter(), และ array_reduce() จึงเป็นหัวใจสำคัญของการยกระดับโค้ดให้มีประสิทธิภาพสูง

“>

การเปลี่ยนแนวคิดจากการเขียนโค้ดแบบ Imperative (คำสั่ง) ซึ่งเราต้องบอกขั้นตอนทีละขั้น (เช่น ‘ให้สร้างตัวแปร A, จากนั้นให้วนลูป, ถ้าค่านี้เป็นจริง ให้ทำสิ่งนี้…’) ไปสู่แบบ Declarative (ประกาศ) ซึ่งเราเพียงแค่ประกาศว่า ‘ผลลัพธ์ที่ต้องการคืออะไร’ เป็นการยกระดับโค้ดให้มีความกระชับ อ่านง่าย และลดโอกาสเกิด Side Effects ที่ซับซ้อนในการบำรุงรักษา

⚙️ การทำความเข้าใจ Functional Array Functions ใน PHP

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

“>

ในฐานะ System Specialist และ Senior Architect การจัดการชุดข้อมูล (Collection) ที่ซับซ้อนที่ดึงมาจากระบบหลังบ้าน เช่น PostgreSQL ไม่ใช่แค่การวนลูป (Looping) แต่คือการประมวลผลเชิงฟังก์ชัน (Functional Processing) การทำความเข้าใจถึงเครื่องมือระดับสูงของ PHP อย่าง array_map(), array_filter(), และ array_reduce() จึงเป็นหัวใจสำคัญของการยกระดับโค้ดให้มีประสิทธิภาพสูง

“>

การเปลี่ยนแนวคิดจากการเขียนโค้ดแบบ Imperative (คำสั่ง) ซึ่งเราต้องบอกขั้นตอนทีละขั้น (เช่น ‘ให้สร้างตัวแปร A, จากนั้นให้วนลูป, ถ้าค่านี้เป็นจริง ให้ทำสิ่งนี้…’) ไปสู่แบบ Declarative (ประกาศ) ซึ่งเราเพียงแค่ประกาศว่า ‘ผลลัพธ์ที่ต้องการคืออะไร’ เป็นการยกระดับโค้ดให้มีความกระชับ อ่านง่าย และลดโอกาสเกิด Side Effects ที่ซับซ้อนในการบำรุงรักษา

⚙️ การทำความเข้าใจ Functional Array Functions ใน PHP

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

“>

ในฐานะ System Specialist และ Senior Architect การจัดการชุดข้อมูล (Collection) ที่ซับซ้อนที่ดึงมาจากระบบหลังบ้าน เช่น PostgreSQL ไม่ใช่แค่การวนลูป (Looping) แต่คือการประมวลผลเชิงฟังก์ชัน (Functional Processing) การทำความเข้าใจถึงเครื่องมือระดับสูงของ PHP อย่าง array_map(), array_filter(), และ array_reduce() จึงเป็นหัวใจสำคัญของการยกระดับโค้ดให้มีประสิทธิภาพสูง

“>

การเปลี่ยนแนวคิดจากการเขียนโค้ดแบบ Imperative (คำสั่ง) ซึ่งเราต้องบอกขั้นตอนทีละขั้น (เช่น ‘ให้สร้างตัวแปร A, จากนั้นให้วนลูป, ถ้าค่านี้เป็นจริง ให้ทำสิ่งนี้…’) ไปสู่แบบ Declarative (ประกาศ) ซึ่งเราเพียงแค่ประกาศว่า ‘ผลลัพธ์ที่ต้องการคืออะไร’ เป็นการยกระดับโค้ดให้มีความกระชับ อ่านง่าย และลดโอกาสเกิด Side Effects ที่ซับซ้อนในการบำรุงรักษา

⚙️ การทำความเข้าใจ Functional Array Functions ใน PHP

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

“>

ในฐานะ System Specialist และ Senior Architect การจัดการชุดข้อมูล (Collection) ที่ซับซ้อนที่ดึงมาจากระบบหลังบ้าน เช่น PostgreSQL ไม่ใช่แค่การวนลูป (Looping) แต่คือการประมวลผลเชิงฟังก์ชัน (Functional Processing) การทำความเข้าใจถึงเครื่องมือระดับสูงของ PHP อย่าง array_map(), array_filter(), และ array_reduce() จึงเป็นหัวใจสำคัญของการยกระดับโค้ดให้มีประสิทธิภาพสูง

“>

การเปลี่ยนแนวคิดจากการเขียนโค้ดแบบ Imperative (คำสั่ง) ซึ่งเราต้องบอกขั้นตอนทีละขั้น (เช่น ‘ให้สร้างตัวแปร A, จากนั้นให้วนลูป, ถ้าค่านี้เป็นจริง ให้ทำสิ่งนี้…’) ไปสู่แบบ Declarative (ประกาศ) ซึ่งเราเพียงแค่ประกาศว่า ‘ผลลัพธ์ที่ต้องการคืออะไร’ เป็นการยกระดับโค้ดให้มีความกระชับ อ่านง่าย และลดโอกาสเกิด Side Effects ที่ซับซ้อนในการบำรุงรักษา

⚙️ การทำความเข้าใจ Functional Array Functions ใน PHP

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

“>

ในฐานะ System Specialist และ Senior Architect การจัดการชุดข้อมูล (Collection) ที่ซับซ้อนที่ดึงมาจากระบบหลังบ้าน เช่น PostgreSQL ไม่ใช่แค่การวนลูป (Looping) แต่คือการประมวลผลเชิงฟังก์ชัน (Functional Processing) การทำความเข้าใจถึงเครื่องมือระดับสูงของ PHP อย่าง array_map(), array_filter(), และ array_reduce() จึงเป็นหัวใจสำคัญของการยกระดับโค้ดให้มีประสิทธิภาพสูง

“>

การเปลี่ยนแนวคิดจากการเขียนโค้ดแบบ Imperative (คำสั่ง) ซึ่งเราต้องบอกขั้นตอนทีละขั้น (เช่น ‘ให้สร้างตัวแปร A, จากนั้นให้วนลูป, ถ้าค่านี้เป็นจริง ให้ทำสิ่งนี้…’) ไปสู่แบบ Declarative (ประกาศ) ซึ่งเราเพียงแค่ประกาศว่า ‘ผลลัพธ์ที่ต้องการคืออะไร’ เป็นการยกระดับโค้ดให้มีความกระชับ อ่านง่าย และลดโอกาสเกิด Side Effects ที่ซับซ้อนในการบำรุงรักษา

⚙️ การทำความเข้าใจ Functional Array Functions ใน PHP

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

“>

ในฐานะ System Specialist และ Senior Architect การจัดการชุดข้อมูล (Collection) ที่ซับซ้อนที่ดึงมาจากระบบหลังบ้าน เช่น PostgreSQL ไม่ใช่แค่การวนลูป (Looping) แต่คือการประมวลผลเชิงฟังก์ชัน (Functional Processing) การทำความเข้าใจถึงเครื่องมือระดับสูงของ PHP อย่าง array_map(), array_filter(), และ array_reduce() จึงเป็นหัวใจสำคัญของการยกระดับโค้ดให้มีประสิทธิภาพสูง

“>

การเปลี่ยนแนวคิดจากการเขียนโค้ดแบบ Imperative (คำสั่ง) ซึ่งเราต้องบอกขั้นตอนทีละขั้น (เช่น ‘ให้สร้างตัวแปร A, จากนั้นให้วนลูป, ถ้าค่านี้เป็นจริง ให้ทำสิ่งนี้…’) ไปสู่แบบ Declarative (ประกาศ) ซึ่งเราเพียงแค่ประกาศว่า ‘ผลลัพธ์ที่ต้องการคืออะไร’ เป็นการยกระดับโค้ดให้มีความกระชับ อ่านง่าย และลดโอกาสเกิด Side Effects ที่ซับซ้อนในการบำรุงรักษา

⚙️ การทำความเข้าใจ Functional Array Functions ใน PHP

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

“>

ในฐานะ System Specialist และ Senior Architect การจัดการชุดข้อมูล (Collection) ที่ซับซ้อนที่ดึงมาจากระบบหลังบ้าน เช่น PostgreSQL ไม่ใช่แค่การวนลูป (Looping) แต่คือการประมวลผลเชิงฟังก์ชัน (Functional Processing) การทำความเข้าใจถึงเครื่องมือระดับสูงของ PHP อย่าง array_map(), array_filter(), และ array_reduce() จึงเป็นหัวใจสำคัญของการยกระดับโค้ดให้มีประสิทธิภาพสูง

“>

การเปลี่ยนแนวคิดจากการเขียนโค้ดแบบ Imperative (คำสั่ง) ซึ่งเราต้องบอกขั้นตอนทีละขั้น (เช่น ‘ให้สร้างตัวแปร A, จากนั้นให้วนลูป, ถ้าค่านี้เป็นจริง ให้ทำสิ่งนี้…’) ไปสู่แบบ Declarative (ประกาศ) ซึ่งเราเพียงแค่ประกาศว่า ‘ผลลัพธ์ที่ต้องการคืออะไร’ เป็นการยกระดับโค้ดให้มีความกระชับ อ่านง่าย และลดโอกาสเกิด Side Effects ที่ซับซ้อนในการบำรุงรักษา

⚙️ การทำความเข้าใจ Functional Array Functions ใน PHP

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

“>

ในฐานะ System Specialist และ Senior Architect การจัดการชุดข้อมูล (Collection) ที่ซับซ้อนที่ดึงมาจากระบบหลังบ้าน เช่น PostgreSQL ไม่ใช่แค่การวนลูป (Looping) แต่คือการประมวลผลเชิงฟังก์ชัน (Functional Processing) การทำความเข้าใจถึงเครื่องมือระดับสูงของ PHP อย่าง array_map(), array_filter(), และ array_reduce() จึงเป็นหัวใจสำคัญของการยกระดับโค้ดให้มีประสิทธิภาพสูง

“>

การเปลี่ยนแนวคิดจากการเขียนโค้ดแบบ Imperative (คำสั่ง) ซึ่งเราต้องบอกขั้นตอนทีละขั้น (เช่น ‘ให้สร้างตัวแปร A, จากนั้นให้วนลูป, ถ้าค่านี้เป็นจริง ให้ทำสิ่งนี้…’) ไปสู่แบบ Declarative (ประกาศ) ซึ่งเราเพียงแค่ประกาศว่า ‘ผลลัพธ์ที่ต้องการคืออะไร’ เป็นการยกระดับโค้ดให้มีความกระชับ อ่านง่าย และลดโอกาสเกิด Side Effects ที่ซับซ้อนในการบำรุงรักษา

⚙️ การทำความเข้าใจ Functional Array Functions ใน PHP

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

“>

ในฐานะ System Specialist และ Senior Architect การจัดการชุดข้อมูล (Collection) ที่ซับซ้อนที่ดึงมาจากระบบหลังบ้าน เช่น PostgreSQL ไม่ใช่แค่การวนลูป (Looping) แต่คือการประมวลผลเชิงฟังก์ชัน (Functional Processing) การทำความเข้าใจถึงเครื่องมือระดับสูงของ PHP อย่าง array_map(), array_filter(), และ array_reduce() จึงเป็นหัวใจสำคัญของการยกระดับโค้ดให้มีประสิทธิภาพสูง

“>

การเปลี่ยนแนวคิดจากการเขียนโค้ดแบบ Imperative (คำสั่ง) ซึ่งเราต้องบอกขั้นตอนทีละขั้น (เช่น ‘ให้สร้างตัวแปร A, จากนั้นให้วนลูป, ถ้าค่านี้เป็นจริง ให้ทำสิ่งนี้…’) ไปสู่แบบ Declarative (ประกาศ) ซึ่งเราเพียงแค่ประกาศว่า ‘ผลลัพธ์ที่ต้องการคืออะไร’ เป็นการยกระดับโค้ดให้มีความกระชับ อ่านง่าย และลดโอกาสเกิด Side Effects ที่ซับซ้อนในการบำรุงรักษา

⚙️ การทำความเข้าใจ Functional Array Functions ใน PHP

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

“>

ในฐานะ System Specialist และ Senior Architect การจัดการชุดข้อมูล (Collection) ที่ซับซ้อนที่ดึงมาจากระบบหลังบ้าน เช่น PostgreSQL ไม่ใช่แค่การวนลูป (Looping) แต่คือการประมวลผลเชิงฟังก์ชัน (Functional Processing) การทำความเข้าใจถึงเครื่องมือระดับสูงของ PHP อย่าง array_map(), array_filter(), และ array_reduce() จึงเป็นหัวใจสำคัญของการยกระดับโค้ดให้มีประสิทธิภาพสูง

“>

การเปลี่ยนแนวคิดจากการเขียนโค้ดแบบ Imperative (คำสั่ง) ซึ่งเราต้องบอกขั้นตอนทีละขั้น (เช่น ‘ให้สร้างตัวแปร A, จากนั้นให้วนลูป, ถ้าค่านี้เป็นจริง ให้ทำสิ่งนี้…’) ไปสู่แบบ Declarative (ประกาศ) ซึ่งเราเพียงแค่ประกาศว่า ‘ผลลัพธ์ที่ต้องการคืออะไร’ เป็นการยกระดับโค้ดให้มีความกระชับ อ่านง่าย และลดโอกาสเกิด Side Effects ที่ซับซ้อนในการบำรุงรักษา

⚙️ การทำความเข้าใจ Functional Array Functions ใน PHP

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

“>

ในฐานะ System Specialist และ Senior Architect การจัดการชุดข้อมูล (Collection) ที่ซับซ้อนที่ดึงมาจากระบบหลังบ้าน เช่น PostgreSQL ไม่ใช่แค่การวนลูป (Looping) แต่คือการประมวลผลเชิงฟังก์ชัน (Functional Processing) การทำความเข้าใจถึงเครื่องมือระดับสูงของ PHP อย่าง array_map(), array_filter(), และ array_reduce() จึงเป็นหัวใจสำคัญของการยกระดับโค้ดให้มีประสิทธิภาพสูง

“>

การเปลี่ยนแนวคิดจากการเขียนโค้ดแบบ Imperative (คำสั่ง) ซึ่งเราต้องบอกขั้นตอนทีละขั้น (เช่น ‘ให้สร้างตัวแปร A, จากนั้นให้วนลูป, ถ้าค่านี้เป็นจริง ให้ทำสิ่งนี้…’) ไปสู่แบบ Declarative (ประกาศ) ซึ่งเราเพียงแค่ประกาศว่า ‘ผลลัพธ์ที่ต้องการคืออะไร’ เป็นการยกระดับโค้ดให้มีความกระชับ อ่านง่าย และลดโอกาสเกิด Side Effects ที่ซับซ้อนในการบำรุงรักษา

⚙️ การทำความเข้าใจ Functional Array Functions ใน PHP

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

“>

ในฐานะ System Specialist และ Senior Architect การจัดการชุดข้อมูล (Collection) ที่ซับซ้อนที่ดึงมาจากระบบหลังบ้าน เช่น PostgreSQL ไม่ใช่แค่การวนลูป (Looping) แต่คือการประมวลผลเชิงฟังก์ชัน (Functional Processing) การทำความเข้าใจถึงเครื่องมือระดับสูงของ PHP อย่าง array_map(), array_filter(), และ array_reduce() จึงเป็นหัวใจสำคัญของการยกระดับโค้ดให้มีประสิทธิภาพสูง

“>

การเปลี่ยนแนวคิดจากการเขียนโค้ดแบบ Imperative (คำสั่ง) ซึ่งเราต้องบอกขั้นตอนทีละขั้น (เช่น ‘ให้สร้างตัวแปร A, จากนั้นให้วนลูป, ถ้าค่านี้เป็นจริง ให้ทำสิ่งนี้…’) ไปสู่แบบ Declarative (ประกาศ) ซึ่งเราเพียงแค่ประกาศว่า ‘ผลลัพธ์ที่ต้องการคืออะไร’ เป็นการยกระดับโค้ดให้มีความกระชับ อ่านง่าย และลดโอกาสเกิด Side Effects ที่ซับซ้อนในการบำรุงรักษา

⚙️ การทำความเข้าใจ Functional Array Functions ใน PHP

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

“>

ในฐานะ System Specialist และ Senior Architect การจัดการชุดข้อมูล (Collection) ที่ซับซ้อนที่ดึงมาจากระบบหลังบ้าน เช่น PostgreSQL ไม่ใช่แค่การวนลูป (Looping) แต่คือการประมวลผลเชิงฟังก์ชัน (Functional Processing) การทำความเข้าใจถึงเครื่องมือระดับสูงของ PHP อย่าง array_map(), array_filter(), และ array_reduce() จึงเป็นหัวใจสำคัญของการยกระดับโค้ดให้มีประสิทธิภาพสูง

“>

การเปลี่ยนแนวคิดจากการเขียนโค้ดแบบ Imperative (คำสั่ง) ซึ่งเราต้องบอกขั้นตอนทีละขั้น (เช่น ‘ให้สร้างตัวแปร A, จากนั้นให้วนลูป, ถ้าค่านี้เป็นจริง ให้ทำสิ่งนี้…’) ไปสู่แบบ Declarative (ประกาศ) ซึ่งเราเพียงแค่ประกาศว่า ‘ผลลัพธ์ที่ต้องการคืออะไร’ เป็นการยกระดับโค้ดให้มีความกระชับ อ่านง่าย และลดโอกาสเกิด Side Effects ที่ซับซ้อนในการบำรุงรักษา

⚙️ การทำความเข้าใจ Functional Array Functions ใน PHP

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

“>

ในฐานะ System Specialist และ Senior Architect การจัดการชุดข้อมูล (Collection) ที่ซับซ้อนที่ดึงมาจากระบบหลังบ้าน เช่น PostgreSQL ไม่ใช่แค่การวนลูป (Looping) แต่คือการประมวลผลเชิงฟังก์ชัน (Functional Processing) การทำความเข้าใจถึงเครื่องมือระดับสูงของ PHP อย่าง array_map(), array_filter(), และ array_reduce() จึงเป็นหัวใจสำคัญของการยกระดับโค้ดให้มีประสิทธิภาพสูง

“>

การเปลี่ยนแนวคิดจากการเขียนโค้ดแบบ Imperative (คำสั่ง) ซึ่งเราต้องบอกขั้นตอนทีละขั้น (เช่น ‘ให้สร้างตัวแปร A, จากนั้นให้วนลูป, ถ้าค่านี้เป็นจริง ให้ทำสิ่งนี้…’) ไปสู่แบบ Declarative (ประกาศ) ซึ่งเราเพียงแค่ประกาศว่า ‘ผลลัพธ์ที่ต้องการคืออะไร’ เป็นการยกระดับโค้ดให้มีความกระชับ อ่านง่าย และลดโอกาสเกิด Side Effects ที่ซับซ้อนในการบำรุงรักษา

⚙️ การทำความเข้าใจ Functional Array Functions ใน PHP

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

“>

ในฐานะ System Specialist และ Senior Architect การจัดการชุดข้อมูล (Collection) ที่ซับซ้อนที่ดึงมาจากระบบหลังบ้าน เช่น PostgreSQL ไม่ใช่แค่การวนลูป (Looping) แต่คือการประมวลผลเชิงฟังก์ชัน (Functional Processing) การทำความเข้าใจถึงเครื่องมือระดับสูงของ PHP อย่าง array_map(), array_filter(), และ array_reduce() จึงเป็นหัวใจสำคัญของการยกระดับโค้ดให้มีประสิทธิภาพสูง

“>

การเปลี่ยนแนวคิดจากการเขียนโค้ดแบบ Imperative (คำสั่ง) ซึ่งเราต้องบอกขั้นตอนทีละขั้น (เช่น ‘ให้สร้างตัวแปร A, จากนั้นให้วนลูป, ถ้าค่านี้เป็นจริง ให้ทำสิ่งนี้…’) ไปสู่แบบ Declarative (ประกาศ) ซึ่งเราเพียงแค่ประกาศว่า ‘ผลลัพธ์ที่ต้องการคืออะไร’ เป็นการยกระดับโค้ดให้มีความกระชับ อ่านง่าย และลดโอกาสเกิด Side Effects ที่ซับซ้อนในการบำรุงรักษา

⚙️ การทำความเข้าใจ Functional Array Functions ใน PHP

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

“>

ในฐานะ System Specialist และ Senior Architect การจัดการชุดข้อมูล (Collection) ที่ซับซ้อนที่ดึงมาจากระบบหลังบ้าน เช่น PostgreSQL ไม่ใช่แค่การวนลูป (Looping) แต่คือการประมวลผลเชิงฟังก์ชัน (Functional Processing) การทำความเข้าใจถึงเครื่องมือระดับสูงของ PHP อย่าง array_map(), array_filter(), และ array_reduce() จึงเป็นหัวใจสำคัญของการยกระดับโค้ดให้มีประสิทธิภาพสูง

“>

การเปลี่ยนแนวคิดจากการเขียนโค้ดแบบ Imperative (คำสั่ง) ซึ่งเราต้องบอกขั้นตอนทีละขั้น (เช่น ‘ให้สร้างตัวแปร A, จากนั้นให้วนลูป, ถ้าค่านี้เป็นจริง ให้ทำสิ่งนี้…’) ไปสู่แบบ Declarative (ประกาศ) ซึ่งเราเพียงแค่ประกาศว่า ‘ผลลัพธ์ที่ต้องการคืออะไร’ เป็นการยกระดับโค้ดให้มีความกระชับ อ่านง่าย และลดโอกาสเกิด Side Effects ที่ซับซ้อนในการบำรุงรักษา

⚙️ การทำความเข้าใจ Functional Array Functions ใน PHP

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

“>

ในฐานะ System Specialist และ Senior Architect การจัดการชุดข้อมูล (Collection) ที่ซับซ้อนที่ดึงมาจากระบบหลังบ้าน เช่น PostgreSQL ไม่ใช่แค่การวนลูป (Looping) แต่คือการประมวลผลเชิงฟังก์ชัน (Functional Processing) การทำความเข้าใจถึงเครื่องมือระดับสูงของ PHP อย่าง array_map(), array_filter(), และ array_reduce() จึงเป็นหัวใจสำคัญของการยกระดับโค้ดให้มีประสิทธิภาพสูง

“>

การเปลี่ยนแนวคิดจากการเขียนโค้ดแบบ Imperative (คำสั่ง) ซึ่งเราต้องบอกขั้นตอนทีละขั้น (เช่น ‘ให้สร้างตัวแปร A, จากนั้นให้วนลูป, ถ้าค่านี้เป็นจริง ให้ทำสิ่งนี้…’) ไปสู่แบบ Declarative (ประกาศ) ซึ่งเราเพียงแค่ประกาศว่า ‘ผลลัพธ์ที่ต้องการคืออะไร’ เป็นการยกระดับโค้ดให้มีความกระชับ อ่านง่าย และลดโอกาสเกิด Side Effects ที่ซับซ้อนในการบำรุงรักษา

⚙️ การทำความเข้าใจ Functional Array Functions ใน PHP

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

“>

ในฐานะ System Specialist และ Senior Architect การจัดการชุดข้อมูล (Collection) ที่ซับซ้อนที่ดึงมาจากระบบหลังบ้าน เช่น PostgreSQL ไม่ใช่แค่การวนลูป (Looping) แต่คือการประมวลผลเชิงฟังก์ชัน (Functional Processing) การทำความเข้าใจถึงเครื่องมือระดับสูงของ PHP อย่าง array_map(), array_filter(), และ array_reduce() จึงเป็นหัวใจสำคัญของการยกระดับโค้ดให้มีประสิทธิภาพสูง

“>

การเปลี่ยนแนวคิดจากการเขียนโค้ดแบบ Imperative (คำสั่ง) ซึ่งเราต้องบอกขั้นตอนทีละขั้น (เช่น ‘ให้สร้างตัวแปร A, จากนั้นให้วนลูป, ถ้าค่านี้เป็นจริง ให้ทำสิ่งนี้…’) ไปสู่แบบ Declarative (ประกาศ) ซึ่งเราเพียงแค่ประกาศว่า ‘ผลลัพธ์ที่ต้องการคืออะไร’ เป็นการยกระดับโค้ดให้มีความกระชับ อ่านง่าย และลดโอกาสเกิด Side Effects ที่ซับซ้อนในการบำรุงรักษา

⚙️ การทำความเข้าใจ Functional Array Functions ใน PHP

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

“>

ในฐานะ System Specialist และ Senior Architect การจัดการชุดข้อมูล (Collection) ที่ซับซ้อนที่ดึงมาจากระบบหลังบ้าน เช่น PostgreSQL ไม่ใช่แค่การวนลูป (Looping) แต่คือการประมวลผลเชิงฟังก์ชัน (Functional Processing) การทำความเข้าใจถึงเครื่องมือระดับสูงของ PHP อย่าง array_map(), array_filter(), และ array_reduce() จึงเป็นหัวใจสำคัญของการยกระดับโค้ดให้มีประสิทธิภาพสูง

“>

การเปลี่ยนแนวคิดจากการเขียนโค้ดแบบ Imperative (คำสั่ง) ซึ่งเราต้องบอกขั้นตอนทีละขั้น (เช่น ‘ให้สร้างตัวแปร A, จากนั้นให้วนลูป, ถ้าค่านี้เป็นจริง ให้ทำสิ่งนี้…’) ไปสู่แบบ Declarative (ประกาศ) ซึ่งเราเพียงแค่ประกาศว่า ‘ผลลัพธ์ที่ต้องการคืออะไร’ เป็นการยกระดับโค้ดให้มีความกระชับ อ่านง่าย และลดโอกาสเกิด Side Effects ที่ซับซ้อนในการบำรุงรักษา

⚙️ การทำความเข้าใจ Functional Array Functions ใน PHP

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

“>

ในฐานะ System Specialist และ Senior Architect การจัดการชุดข้อมูล (Collection) ที่ซับซ้อนที่ดึงมาจากระบบหลังบ้าน เช่น PostgreSQL ไม่ใช่แค่การวนลูป (Looping) แต่คือการประมวลผลเชิงฟังก์ชัน (Functional Processing) การทำความเข้าใจถึงเครื่องมือระดับสูงของ PHP อย่าง array_map(), array_filter(), และ array_reduce() จึงเป็นหัวใจสำคัญของการยกระดับโค้ดให้มีประสิทธิภาพสูง

“>

การเปลี่ยนแนวคิดจากการเขียนโค้ดแบบ Imperative (คำสั่ง) ซึ่งเราต้องบอกขั้นตอนทีละขั้น (เช่น ‘ให้สร้างตัวแปร A, จากนั้นให้วนลูป, ถ้าค่านี้เป็นจริง ให้ทำสิ่งนี้…’) ไปสู่แบบ Declarative (ประกาศ) ซึ่งเราเพียงแค่ประกาศว่า ‘ผลลัพธ์ที่ต้องการคืออะไร’ เป็นการยกระดับโค้ดให้มีความกระชับ อ่านง่าย และลดโอกาสเกิด Side Effects ที่ซับซ้อนในการบำรุงรักษา

⚙️ การทำความเข้าใจ Functional Array Functions ใน PHP

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

“>

ในฐานะ System Specialist และ Senior Architect การจัดการชุดข้อมูล (Collection) ที่ซับซ้อนที่ดึงมาจากระบบหลังบ้าน เช่น PostgreSQL ไม่ใช่แค่การวนลูป (Looping) แต่คือการประมวลผลเชิงฟังก์ชัน (Functional Processing) การทำความเข้าใจถึงเครื่องมือระดับสูงของ PHP อย่าง array_map(), array_filter(), และ array_reduce() จึงเป็นหัวใจสำคัญของการยกระดับโค้ดให้มีประสิทธิภาพสูง

“>

การเปลี่ยนแนวคิดจากการเขียนโค้ดแบบ Imperative (คำสั่ง) ซึ่งเราต้องบอกขั้นตอนทีละขั้น (เช่น ‘ให้สร้างตัวแปร A, จากนั้นให้วนลูป, ถ้าค่านี้เป็นจริง ให้ทำสิ่งนี้…’) ไปสู่แบบ Declarative (ประกาศ) ซึ่งเราเพียงแค่ประกาศว่า ‘ผลลัพธ์ที่ต้องการคืออะไร’ เป็นการยกระดับโค้ดให้มีความกระชับ อ่านง่าย และลดโอกาสเกิด Side Effects ที่ซับซ้อนในการบำรุงรักษา

⚙️ การทำความเข้าใจ Functional Array Functions ใน PHP

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

“>

ในฐานะ System Specialist และ Senior Architect การจัดการชุดข้อมูล (Collection) ที่ซับซ้อนที่ดึงมาจากระบบหลังบ้าน เช่น PostgreSQL ไม่ใช่แค่การวนลูป (Looping) แต่คือการประมวลผลเชิงฟังก์ชัน (Functional Processing) การทำความเข้าใจถึงเครื่องมือระดับสูงของ PHP อย่าง array_map(), array_filter(), และ array_reduce() จึงเป็นหัวใจสำคัญของการยกระดับโค้ดให้มีประสิทธิภาพสูง

“>

การเปลี่ยนแนวคิดจากการเขียนโค้ดแบบ Imperative (คำสั่ง) ซึ่งเราต้องบอกขั้นตอนทีละขั้น (เช่น ‘ให้สร้างตัวแปร A, จากนั้นให้วนลูป, ถ้าค่านี้เป็นจริง ให้ทำสิ่งนี้…’) ไปสู่แบบ Declarative (ประกาศ) ซึ่งเราเพียงแค่ประกาศว่า ‘ผลลัพธ์ที่ต้องการคืออะไร’ เป็นการยกระดับโค้ดให้มีความกระชับ อ่านง่าย และลดโอกาสเกิด Side Effects ที่ซับซ้อนในการบำรุงรักษา

⚙️ การทำความเข้าใจ Functional Array Functions ใน PHP

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

“>

ในฐานะ System Specialist และ Senior Architect การจัดการชุดข้อมูล (Collection) ที่ซับซ้อนที่ดึงมาจากระบบหลังบ้าน เช่น PostgreSQL ไม่ใช่แค่การวนลูป (Looping) แต่คือการประมวลผลเชิงฟังก์ชัน (Functional Processing) การทำความเข้าใจถึงเครื่องมือระดับสูงของ PHP อย่าง array_map(), array_filter(), และ array_reduce() จึงเป็นหัวใจสำคัญของการยกระดับโค้ดให้มีประสิทธิภาพสูง

“>

การเปลี่ยนแนวคิดจากการเขียนโค้ดแบบ Imperative (คำสั่ง) ซึ่งเราต้องบอกขั้นตอนทีละขั้น (เช่น ‘ให้สร้างตัวแปร A, จากนั้นให้วนลูป, ถ้าค่านี้เป็นจริง ให้ทำสิ่งนี้…’) ไปสู่แบบ Declarative (ประกาศ) ซึ่งเราเพียงแค่ประกาศว่า ‘ผลลัพธ์ที่ต้องการคืออะไร’ เป็นการยกระดับโค้ดให้มีความกระชับ อ่านง่าย และลดโอกาสเกิด Side Effects ที่ซับซ้อนในการบำรุงรักษา

⚙️ การทำความเข้าใจ Functional Array Functions ใน PHP

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

“>

ในฐานะ System Specialist และ Senior Architect การจัดการชุดข้อมูล (Collection) ที่ซับซ้อนที่ดึงมาจากระบบหลังบ้าน เช่น PostgreSQL ไม่ใช่แค่การวนลูป (Looping) แต่คือการประมวลผลเชิงฟังก์ชัน (Functional Processing) การทำความเข้าใจถึงเครื่องมือระดับสูงของ PHP อย่าง array_map(), array_filter(), และ array_reduce() จึงเป็นหัวใจสำคัญของการยกระดับโค้ดให้มีประสิทธิภาพสูง

“>

การเปลี่ยนแนวคิดจากการเขียนโค้ดแบบ Imperative (คำสั่ง) ซึ่งเราต้องบอกขั้นตอนทีละขั้น (เช่น ‘ให้สร้างตัวแปร A, จากนั้นให้วนลูป, ถ้าค่านี้เป็นจริง ให้ทำสิ่งนี้…’) ไปสู่แบบ Declarative (ประกาศ) ซึ่งเราเพียงแค่ประกาศว่า ‘ผลลัพธ์ที่ต้องการคืออะไร’ เป็นการยกระดับโค้ดให้มีความกระชับ อ่านง่าย และลดโอกาสเกิด Side Effects ที่ซับซ้อนในการบำรุงรักษา

⚙️ การทำความเข้าใจ Functional Array Functions ใน PHP

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

“>

ในฐานะ System Specialist และ Senior Architect การจัดการชุดข้อมูล (Collection) ที่ซับซ้อนที่ดึงมาจากระบบหลังบ้าน เช่น PostgreSQL ไม่ใช่แค่การวนลูป (Looping) แต่คือการประมวลผลเชิงฟังก์ชัน (Functional Processing) การทำความเข้าใจถึงเครื่องมือระดับสูงของ PHP อย่าง array_map(), array_filter(), และ array_reduce() จึงเป็นหัวใจสำคัญของการยกระดับโค้ดให้มีประสิทธิภาพสูง

“>

การเปลี่ยนแนวคิดจากการเขียนโค้ดแบบ Imperative (คำสั่ง) ซึ่งเราต้องบอกขั้นตอนทีละขั้น (เช่น ‘ให้สร้างตัวแปร A, จากนั้นให้วนลูป, ถ้าค่านี้เป็นจริง ให้ทำสิ่งนี้…’) ไปสู่แบบ Declarative (ประกาศ) ซึ่งเราเพียงแค่ประกาศว่า ‘ผลลัพธ์ที่ต้องการคืออะไร’ เป็นการยกระดับโค้ดให้มีความกระชับ อ่านง่าย และลดโอกาสเกิด Side Effects ที่ซับซ้อนในการบำรุงรักษา

⚙️ การทำความเข้าใจ Functional Array Functions ใน PHP

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

“>

ในฐานะ System Specialist และ Senior Architect การจัดการชุดข้อมูล (Collection) ที่ซับซ้อนที่ดึงมาจากระบบหลังบ้าน เช่น PostgreSQL ไม่ใช่แค่การวนลูป (Looping) แต่คือการประมวลผลเชิงฟังก์ชัน (Functional Processing) การทำความเข้าใจถึงเครื่องมือระดับสูงของ PHP อย่าง array_map(), array_filter(), และ array_reduce() จึงเป็นหัวใจสำคัญของการยกระดับโค้ดให้มีประสิทธิภาพสูง

“>

การเปลี่ยนแนวคิดจากการเขียนโค้ดแบบ Imperative (คำสั่ง) ซึ่งเราต้องบอกขั้นตอนทีละขั้น (เช่น ‘ให้สร้างตัวแปร A, จากนั้นให้วนลูป, ถ้าค่านี้เป็นจริง ให้ทำสิ่งนี้…’) ไปสู่แบบ Declarative (ประกาศ) ซึ่งเราเพียงแค่ประกาศว่า ‘ผลลัพธ์ที่ต้องการคืออะไร’ เป็นการยกระดับโค้ดให้มีความกระชับ อ่านง่าย และลดโอกาสเกิด Side Effects ที่ซับซ้อนในการบำรุงรักษา

⚙️ การทำความเข้าใจ Functional Array Functions ใน PHP

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

“>

ในฐานะ System Specialist และ Senior Architect การจัดการชุดข้อมูล (Collection) ที่ซับซ้อนที่ดึงมาจากระบบหลังบ้าน เช่น PostgreSQL ไม่ใช่แค่การวนลูป (Looping) แต่คือการประมวลผลเชิงฟังก์ชัน (Functional Processing) การทำความเข้าใจถึงเครื่องมือระดับสูงของ PHP อย่าง array_map(), array_filter(), และ array_reduce() จึงเป็นหัวใจสำคัญของการยกระดับโค้ดให้มีประสิทธิภาพสูง

“>

การเปลี่ยนแนวคิดจากการเขียนโค้ดแบบ Imperative (คำสั่ง) ซึ่งเราต้องบอกขั้นตอนทีละขั้น (เช่น ‘ให้สร้างตัวแปร A, จากนั้นให้วนลูป, ถ้าค่านี้เป็นจริง ให้ทำสิ่งนี้…’) ไปสู่แบบ Declarative (ประกาศ) ซึ่งเราเพียงแค่ประกาศว่า ‘ผลลัพธ์ที่ต้องการคืออะไร’ เป็นการยกระดับโค้ดให้มีความกระชับ อ่านง่าย และลดโอกาสเกิด Side Effects ที่ซับซ้อนในการบำรุงรักษา

⚙️ การทำความเข้าใจ Functional Array Functions ใน PHP

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง

“>

ในฐานะ System Specialist และ Senior Architect การจัดการชุดข้อมูล (Collection) ที่ซับซ้อนที่ดึงมาจากระบบหลังบ้าน เช่น PostgreSQL ไม่ใช่แค่การวนลูป (Looping) แต่คือการประมวลผลเชิงฟังก์ชัน (Functional Processing) การทำความเข้าใจถึงเครื่องมือระดับสูงของ PHP อย่าง array_map(), array_filter(), และ array_reduce() จึงเป็นหัวใจสำคัญของการยกระดับโค้ดให้มีประสิทธิภาพสูง

“>

การเปลี่ยนแนวคิดจากการเขียนโค้ดแบบ Imperative (คำสั่ง) ซึ่งเราต้องบอกขั้นตอนทีละขั้น (เช่น ‘ให้สร้างตัวแปร A, จากนั้นให้วนลูป, ถ้าค่านี้เป็นจริง ให้ทำสิ่งนี้…’) ไปสู่แบบ Declarative (ประกาศ) ซึ่งเราเพียงแค่ประกาศว่า ‘ผลลัพธ์ที่ต้องการคืออะไร’ เป็นการยกระดับโค้ดให้มีความกระชับ อ่านง่าย และลดโอกาสเกิด Side Effects ที่ซับซ้อนในการบำรุงรักษา

⚙️ การทำความเข้าใจ Functional Array Functions ใน PHP

  • array_map(): Transformation (การแปลงค่า)
    ใช้เมื่อคุณต้องการนำค่าแต่ละตัวใน Array ไปผ่านฟังก์ชันที่กำหนด เพื่อสร้าง Array ใหม่ที่มีขนาดเท่าเดิม แต่มีรูปแบบหรือค่าใหม่ตามที่ต้องการ เหมาะสำหรับการคำนวณหรือการจัดรูปแบบข้อมูล (เช่น การแปลงสตริงวันที่ให้เป็น Object)
  • array_filter(): Filtering (การกรองข้อมูล)
    ใช้เมื่อคุณต้องการคัดกรองข้อมูลออกจาก Array โดยใช้เงื่อนไขที่กำหนด เพื่อให้ได้ Array ใหม่ที่มีเฉพาะค่าที่ผ่านเกณฑ์เท่านั้น
  • array_reduce(): Aggregation (การรวมค่า)
    ใช้เมื่อคุณต้องการรวมค่าทั้งหมดใน Array ให้กลายเป็นค่าเดียว (Single Value) เช่น การคำนวณผลรวม (Sum), การนับจำนวน, หรือการรวมข้อมูลให้เป็นรูปแบบ Object

💡 ตัวอย่างการใช้งานเชิงลึก

“>

สมมติว่าเราดึงข้อมูลราคาสินค้า (Price) และจำนวน (Quantity) มาจาก PostgreSQL และต้องการคำนวณมูลค่ารวม (Total Value) ของแต่ละรายการ

1. array_map() – การแปลงค่า

“>

เราต้องการแปลง Array ของราคาสินค้า (Price) ให้เป็น Array ของราคาสินค้าที่ถูกปัดเศษทศนิยมให้เหลือ 2 ตำแหน่ง

PHP

$prices = [123.456, 99.999, 5.00];

// ใช้ array_map กับฟังก์ชัน round()
$roundedPrices = array_map(function($price) { return round($price, 2); }, $prices);

// ผลลัพธ์: [123.46, 100.0, 5.0]

2. array_filter() – การกรองข้อมูล

“>

เรามีรายการ ID สินค้าที่ดึงมาทั้งหมด และต้องการกรองเฉพาะ ID ที่มีสถานะ ‘Active’ เท่านั้น

PHP

$products = [ 
    ['id' => 1, 'status' => 'Active'], 
    ['id' => 2, 'status' => 'Inactive'], 
    ['id' => 3, 'status' => 'Active'] 
];

// ใช้ array_filter เพื่อกรองเฉพาะรายการที่สถานะเป็น 'Active'
$activeProducts = array_filter($products, function($product) { 
    return $product['status'] === 'Active'; 
});

// ผลลัพธ์: Array containing product IDs 1 and 3

3. array_reduce() – การรวมค่า

“>

เราต้องการคำนวณมูลค่ารวมทั้งหมด (Total Value) จากรายการสินค้าที่ผ่านการกรองแล้ว

PHP

$prices = [10.0, 20.0, 5.0];

// ใช้ array_reduce เพื่อรวมค่าทั้งหมดให้เป็นผลรวมเดียว
$totalValue = array_reduce($prices, function($carry, $item) { 
    return $carry + $item; 
}, 0); // 0 คือค่าเริ่มต้น (Initial Value)

// ผลลัพธ์: 35.0

✅ บทสรุป: เมื่อไหร่ที่ควรใช้ Functional Approach

“>

ในฐานะนักพัฒนาระดับสูง การเลือกใช้ฟังก์ชันเหล่านี้ไม่ใช่แค่ทางเลือก แต่คือการยกระดับสถาปัตยกรรมโค้ด (Code Architecture) ให้เป็นแบบ Functional Programming อย่างแท้จริง

  • array_map(): ใช้เมื่อคุณต้องการ Transform ข้อมูล (เปลี่ยนรูปแบบ/ค่า)
  • array_filter(): ใช้เมื่อคุณต้องการ Filter ข้อมูล (คัดกรองตามเงื่อนไข)
  • array_reduce(): ใช้เมื่อคุณต้องการ Aggregate ข้อมูล (รวมค่าให้เป็นค่าเดียว)
“>

การใช้ฟังก์ชันเหล่านี้ช่วยให้โค้ดของคุณมีความเป็น Declarative มากขึ้น ทำให้โค้ดสั้นลง (Concise), อ่านง่ายขึ้น (Readability), และง่ายต่อการบำรุงรักษา (Maintainability) อย่างยิ่งเมื่อระบบมีความซับซ้อนสูง