StepCoding

การค้นหาค่าในอะเรย์

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

เมื่อเรามีค่าหนึ่งค่าที่ต้องการค้นหาว่าค่านี้มีใน array หรือไม่ สามารถค้นหาโดยง่ายด้วยฟังก์ชัน in_array() โดยถ้าค้นหาพบมันจะคืนค่าเป็น true และถ้าค้นหาไม่พบมันจะคืนค่าเป็น false

# รูปแบบ
in_array(value_find, array [, strict]);
โดยที่
	value_find คือ ค่าที่ต้องการค้นหา
	array คือ ตัวแปรอะเรย์ที่ต้องการค้นหาว่า ค่าใน value_find มีในอะเรย์หรือไม่
	strict คือ optional ถ้าเรากำหนดเป็น true มันจะทำการตรวจสอบชนิดของค่าใน value_find กับชนิดของค่าในอะเรย์ด้วย (ซึ่งหมายความว่าชนิดของค่าจะต้องเหมือนกันด้วยเช่น string กับ string)
<?php
$email = array('genetic@stepcoding.com', 'admin@stepcoding.com', 'mod@stepcoding.com');
$has_admin = in_array('admin@stepcoding.com', $email);
// true
$has_mod = in_array('mod@stepcoding.com', $email);
?>

นอกจากนี้ยังมีฟังก์ชัน array_search() ที่ใช้ในการค้นหาค่าในอะเรย์อีกด้วย แต่จะแตกต่างกันตรงที่ฟังก์ชัน array_search() จะคืนค่ากลับมาเป็น key ของ element ที่พบค่านั้น ๆ

# รูปแบบ
$key = array_search(array, value_find);
โดยที่
	$key คือ ตัวแปรที่ใช้เก็บค่า key ในกรณีที่มันค้นหาค่านั้น ๆ พบในอะเรย์ แล้วมันจะคืนค่า key ของ element ที่พบนั้น ๆ กลับมา
	array คือ ตัวแปรอะเรย์ที่จะนำไปตรวจสอบ
	value_find คือ ค่าที่ต้องการตรวจสอบว่ามีในอะเรย์นั้น ๆ หรือไม่
<?php
$person = array('name' => 'Genetic', 'age' => 21, 'position' => 'Admin');
$key_found = array_search($person, 'Admin');
echo "Genetic's $key_found is Admin\n";
// Genetic's position is Admin
?>

ผู้สนับสนุน