StepCoding

การกรองสมาชิกในอะเรย์

อ่าน [238] หมวดหมู่: Array

การกรอง (filter) สมาชิกในอะเรย์ คือการส่ง element ในแต่ละตัวของอะเรย์ไปตรวจสอบค่าตามที่ต้องการ ถ้าคืนค่ากลับมาเป็น true ก็จะคงสมาชิกตัวนั้น ๆ อยู่ แต่ถ้าคืนค่ากลับมาเป็น false มันก็จะลบสมาชิกนั้น ๆ ทิ้งไป

$filtered = array_filter(array, callback);
โดยที่
	$filtered คือ ตัวแปรอะเรย์ที่เก็บผลลัพธ์จากการกรองอะเรย์แล้ว
	array คือ ตัวแปรอะเรย์ที่ต้องการนำไปกรองค่า โดยมันจะส่ง element ที่ละตัวจนครบไปยังฟังก์ชัน callback
	callback คือ ฟังก์ชันที่ต้องการใช้ในการตรวจสอบค่าเพื่อกรองข้อมูลในอะเรย์
<?php
function is_odd($element) {
	// มันจะคืนค่าเป็น 0 หรือ 1 ซึ่งแทนค่า true และ false
	return $element % 2;
}

$numbers = array(9, 23, 24, 27);
$odds = array_filter($numbers, 'is_odd');
// $odds = array(0 => 9, 1 => 23, 3 => 27);
?>

ในกรณีที่เป็นอะเรย์หลายมิติ

<?php
function is_young($element) {
	return ($element['age'] < 30);
}

$persons = array(
		array(
			"name" => "Genetic",
			"age" => 21);
		array(
			"name" => "Foo",
			"age" => 30);
		array(
			"name" => "Bar",
			"age" => 34);
		array(
			"name" => "Flob",
			"age" => 12)
	);

$youngs = array_filter($persons, 'is_young');
print_r($youngs);
?>
# ผลลัพธ์
Array (
	[0] => Array(
		[name] => Genetic
		[age] => 21
	)
	[3] => Array(
		[name] => Flob
		[age] => 12
	)
)

ผู้สนับสนุน