ดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

array_filter() 

ใน php ยังมีฟังก์ชันมากมายให้เราได้ศึกษากันและนำไปใช้กับงานของเรา ฟังก์ชันที่เกี่ยวข้องกับการกรอง filter มีหลากหลาย เช่น stream_filter_register() และ  imagefilter()  ในบทความนี้เราจะมาเรียนรู้เรื่องฟังก์ชัน array_filter น่ะครับ ฟังก์ชันนี้อาจจะมีฟังก์ชันอื่นมาเกี่ยวข้องทำงานร่วมกัน เพื่อกำหนด ฟังก์ชัน callback ให้มันสามารถทำงานได้

array_filter - กรององค์ประกอบ (Elements )ของอาร์เรย์โดยใช้ฟังก์ชั่น callback  ในการวนซ้ำ(Iterates) ทุกๆค่าใน Array จะส่งไปยังฟังก์ชัน callback หากฟังก์ชัน callback ส่งคืนค่าเป็นจริง(true)  ค่าปัจจุบันใน array ก็จะถูกส่งกลับไปยังผลลัพธ์อาร์เรย์ และคีย์ของอาร์เรย์จะถูกเก็บรักษาไว้ 

รูปแบบ Syntex 

array_filter ( array $array [, callable $callback [, int $flag = 0 ]] ) : array

ตัวอย่างโค้ดการใช้งาน

<?php
function odd($var)
{
    // returns whether the input integer is odd
    return($var & 1);
}

function even($var)
{
    // returns whether the input integer is even
    return(!($var & 1));
}

$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array(6, 7, 8, 9, 10, 11, 12);

echo "Odd :\n";
print_r(array_filter($array1, "odd"));
echo "Even:\n";
print_r(array_filter($array2, "even"));
?>

ตัวอย่างโค้ดด้านบนจะแสดงผลลัพธ์ดังนี้

Odd :
Array
(
    [a] => 1
    [c] => 3
    [e] => 5
)
Even:
Array
(
    [0] => 6
    [2] => 8
    [4] => 10
    [6] => 12
)

จากผลลัพธ์ จะเห็นได้ว่า ฟังก์ชัน นี้ จะทำการกรองตาม callback ที่เรากำหนดไว้ ในที่นี้จะทำกรองหา element ใน array ว่าตัวไหนคือ odd (เลขคี่) และ Even(เลขคู่)น่ะครับ เมื่อทำการกรองเสร็จแล้ว ก็จะส่งค่าที่กรองได้คืนมาและทำการเป็นในลำดับต่อไป  ในส่วนของฟังก์ชัน callback เราสามารถกำหนดฟังก์ชันอะไรก็ได้ที่เราต้องการจะกรอง หวังว่าบทความนี้จะเป็นประโยชน์และสามารถนำไปประยุกต์ได้น่ะครับ 

 

 

ช่องทางการศึกษาเพิ่มเติมข่าวที่น่าสนใจเกี่ยวกับ : ฟังก์ชัน PHP

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
งานประจำวันที่ 23 พฤษภาคม 2562
โดย teenproza7 พฤ 23 พฤษภาคม 2019 9:55 am บอร์ด M082 - ยศนันท์ ปันคำ
0
2
พฤ 23 พฤษภาคม 2019 9:55 am โดย teenproza7
อยากเล่นเฟซบุ๊กต้องทำยังไง
โดย teenproza7 พ 22 พฤษภาคม 2019 8:48 pm บอร์ด Share Knowledge
0
20
พ 22 พฤษภาคม 2019 8:48 pm โดย teenproza7
สอบถามเรื่องการสร้างเพจ
โดย khwanchanok พ 22 พฤษภาคม 2019 7:14 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
10
พ 22 พฤษภาคม 2019 7:14 pm โดย khwanchanok
วิธี start server บนเครื่อง VM กรณี server ดับ (Ubuntu server) ระบบไฟล์มีปัญหา
โดย tatiya พ 22 พฤษภาคม 2019 7:04 pm บอร์ด Linux - Web Server
0
15
พ 22 พฤษภาคม 2019 7:04 pm โดย tatiya
ข้อดีเเละข้อเสียของการซื้อของเเพง
โดย สริญญา สมสา พ 22 พฤษภาคม 2019 6:50 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
8
พ 22 พฤษภาคม 2019 6:50 pm โดย สริญญา สมสา
การสร้าง FanPage ใน Facbook
โดย khwanchanok พ 22 พฤษภาคม 2019 6:46 pm บอร์ด Share Knowledge
3
34
พ 22 พฤษภาคม 2019 7:50 pm โดย tatiya
ไม่สามารถส่งค่าไปยัง database ได้
โดย teenproza7 พ 22 พฤษภาคม 2019 6:21 pm บอร์ด Programming - C/C++ & java & Python
1
18
พ 22 พฤษภาคม 2019 6:30 pm โดย tatiya
เรียนรู้การนับค่าKey index ในList
โดย khwanchanok พ 22 พฤษภาคม 2019 6:15 pm บอร์ด Python Knowledge
0
4
พ 22 พฤษภาคม 2019 6:15 pm โดย khwanchanok
ข้อแตกต่างระหว่าง List Tuple และ Ditionary
โดย khwanchanok พ 22 พฤษภาคม 2019 6:04 pm บอร์ด Python Knowledge
0
5
พ 22 พฤษภาคม 2019 6:04 pm โดย khwanchanok
มารู้จักกับ Built-in Funtion ในPython
โดย khwanchanok พ 22 พฤษภาคม 2019 5:52 pm บอร์ด Python Knowledge
0
6
พ 22 พฤษภาคม 2019 5:52 pm โดย khwanchanok
สร้างตัวแปรใน Python
โดย khwanchanok พ 22 พฤษภาคม 2019 5:36 pm บอร์ด Python Knowledge
0
7
พ 22 พฤษภาคม 2019 5:36 pm โดย khwanchanok
Error ภาษาไทยใน Python
โดย khwanchanok พ 22 พฤษภาคม 2019 5:29 pm บอร์ด Python Knowledge
0
16
พ 22 พฤษภาคม 2019 5:29 pm โดย khwanchanok
ดูแลหูฟังกันอย่างไรใหม่มีประสิทธิภาพ
โดย jamepiyawat พ 22 พฤษภาคม 2019 4:55 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
13
พ 22 พฤษภาคม 2019 4:55 pm โดย jamepiyawat
วิธีทำสลัดโรล
โดย สริญญา สมสา พ 22 พฤษภาคม 2019 4:41 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
14
พ 22 พฤษภาคม 2019 4:41 pm โดย สริญญา สมสา
ออกกำลังกายกี่วันถึงจะดีนะ ?
โดย jamepiyawat พ 22 พฤษภาคม 2019 3:48 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
20
พ 22 พฤษภาคม 2019 3:48 pm โดย jamepiyawat
ประเภทเเละระบบของการเงิน
โดย สริญญา สมสา พ 22 พฤษภาคม 2019 3:29 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
7
พ 22 พฤษภาคม 2019 3:29 pm โดย สริญญา สมสา
เจอปัญหา หลังจากการอัพเกรด Joomla เมนูย่อย ใน Components Component หาย
โดย mindphp พ 22 พฤษภาคม 2019 3:28 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
0
9
พ 22 พฤษภาคม 2019 3:28 pm โดย mindphp
เลือกเก้าอี้ที่เหมาะสมกันเถอะ
โดย jamepiyawat พ 22 พฤษภาคม 2019 3:13 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
21
พ 22 พฤษภาคม 2019 3:13 pm โดย jamepiyawat
สรุปฟีเจอร์ที่เพิ่มไปในระบบ Web - Ordering
โดย Parichat พ 22 พฤษภาคม 2019 2:55 pm บอร์ด Diageo - Web Ordering (Main)
0
7
พ 22 พฤษภาคม 2019 2:55 pm โดย Parichat
วิธีแก้อาการเมาค้าง แฮงค์ คลื่นไส้ ทำอย่างไรให้หายเมาแบบรวดเร็ว
โดย teenproza7 พ 22 พฤษภาคม 2019 2:40 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
10
พ 22 พฤษภาคม 2019 2:40 pm โดย teenproza7