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

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

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
เงื่อนไข การค้นหา คำที่อยากให้มี และ คำที่ไม่อยากให้มี
โดย aninthana ส 21 ก.ย. 2019 6:03 pm บอร์ด PHP Knowledge
0
15
ส 21 ก.ย. 2019 6:03 pm โดย aninthana
ทำยังไง border ทั้งบอร์ดเป็น link ให้เรากดได้ครับ
โดย jamepiyawat ส 21 ก.ย. 2019 4:58 pm บอร์ด HTML CSS
1
16
ส 21 ก.ย. 2019 5:47 pm โดย mindphp
path way เมือกด step ถัดไปstep ที่เคยผ่านมาจะมีแท็ก a เพิ่มขึ้นทำให้ไปปิดตัวอักษร ครับ
โดย jamepiyawat ส 21 ก.ย. 2019 3:30 pm บอร์ด HTML CSS
0
11
ส 21 ก.ย. 2019 3:30 pm โดย jamepiyawat
อยากทราบวิธีที่จะทำให้คำสั่ง css เปลี่ยนไปตามการตั้งค่าสีของ tamplate ครับ
โดย jamepiyawat ส 21 ก.ย. 2019 2:55 pm บอร์ด Joomla Development
2
22
ส 21 ก.ย. 2019 3:19 pm โดย jamepiyawat
Q - อยากทราบวิธีคำนวณค่าสกุลเงินครับ
โดย birdkritsna ส 21 ก.ย. 2019 11:01 am บอร์ด Programming - PHP
11
85
ส 21 ก.ย. 2019 5:15 pm โดย birdkritsna
การ Install ส่วนขยาย
โดย Anonymous ส 21 ก.ย. 2019 11:11 am บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
1
20
ส 21 ก.ย. 2019 3:09 pm โดย mindphp
งานประจำวันที่ 21 กันยายน 2562
โดย aninthana ส 21 ก.ย. 2019 10:27 am บอร์ด M092 - อนินธนา บุญยัง
2
12
ส 21 ก.ย. 2019 6:34 pm โดย aninthana
งานประจำวันที่ 21 กันยายน 2562
โดย jirawoot ส 21 ก.ย. 2019 10:18 am บอร์ด M090 - นายจิระวุฒิ อัครลิขิตกุล
1
4
ส 21 ก.ย. 2019 7:07 pm โดย jirawoot
งานประจำวันที่ 21 กันยายน 2562
โดย birdkritsna ส 21 ก.ย. 2019 10:12 am บอร์ด M094 - กฤษณะ จะโรจน์รัมย์
2
15
ส 21 ก.ย. 2019 6:21 pm โดย birdkritsna
งานประจำวันที่ 21 กันยายน 2562
โดย chatee supasand ส 21 ก.ย. 2019 10:10 am บอร์ด MT33 - นายชาตรี สุภาแสน
1
8
ส 21 ก.ย. 2019 7:26 pm โดย chatee supasand
งานประจำวันที่ 21 กันยายน 2562
โดย jamepiyawat ส 21 ก.ย. 2019 10:07 am บอร์ด M084 - นายปิยวัช เชาว์วิมล
2
10
ส 21 ก.ย. 2019 7:36 pm โดย jamepiyawat
การบันทึกบัญชี รับเงินมัดจำในเดือนกับข้ามเดือน บันทึกยังไง แตกต่างกันมั้ยค่ะ
โดย thatsawan ศ 20 ก.ย. 2019 8:08 pm บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
2
30
ส 21 ก.ย. 2019 5:09 pm โดย thatsawan
ทำความรู้จัก Cloud
โดย aninthana ศ 20 ก.ย. 2019 8:01 pm บอร์ด Linux - Web Server
0
17
ศ 20 ก.ย. 2019 8:01 pm โดย aninthana
เปรียบเทียบ smart watch รุ่นต่างๆ จากหลายๆค่าย รุ่นไหนโดน รุ่นไหนดี มารับชมกันได้เลย
โดย chatee supasand ศ 20 ก.ย. 2019 5:41 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
32
ศ 20 ก.ย. 2019 5:41 pm โดย chatee supasand
วิธีสมัครและใช้งาน api อัตราแลกเปลี่ยนเงินตรา จาก ธนาคารแห่งประเทศไทย ด้วย php
โดย birdkritsna ศ 20 ก.ย. 2019 4:14 pm บอร์ด PHP Knowledge
0
28
ศ 20 ก.ย. 2019 4:14 pm โดย birdkritsna
จะทำ path way เป็นลูกศรชีต้องทำยังไงครับ
โดย jamepiyawat ศ 20 ก.ย. 2019 3:50 pm บอร์ด HTML CSS
0
19
ศ 20 ก.ย. 2019 3:50 pm โดย jamepiyawat
อยากทราบวิธีที่จะทำให้เมือเรากดปุ่มซื้อสินค้าแล้วจะมีหน้า pop เด้งขึ้นมาครับ
โดย jamepiyawat ศ 20 ก.ย. 2019 3:30 pm บอร์ด HTML CSS
0
14
ศ 20 ก.ย. 2019 3:30 pm โดย jamepiyawat
อยากทราบวิธีทำปุ่มกดสลับค่าระหว่าง list box ครับ
โดย birdkritsna ศ 20 ก.ย. 2019 2:59 pm บอร์ด Programming - PHP
7
72
ส 21 ก.ย. 2019 5:41 pm โดย thatsawan
ระดับ User นี้มีข้อจำกัดอะไรบ้างครับ
โดย Patipat ศ 20 ก.ย. 2019 2:45 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
1
25
ศ 20 ก.ย. 2019 2:50 pm โดย tsukasaz
ทำไมโค้ดของผมแสดงผลชื่อจังหวัดชื่ออำเภอผิดครับ
โดย jamepiyawat ศ 20 ก.ย. 2019 2:20 pm บอร์ด JavaScript & Jquery Ajax
8
54
ศ 20 ก.ย. 2019 3:22 pm โดย jamepiyawat