หากเรามีอาเรย์สองมิติ ดังนี้
$data = [
['id' => 1, 'name' => 'Alice', 'age' => 25],
['id' => 2, 'name' => 'Bob', 'age' => 30],
['id' => 3, 'name' => 'Charlie', 'age' => 35],
];
เราสามารถค้นหาข้อมูลในอาเรย์นี้ด้วยการใช้ array_column()
เพื่อสร้างอาเรย์ของคีย์ที่เราต้องการ จากนั้นใช้ array_search()
เพื่อค้นหาค่าที่ตรงตามเงื่อนไข
ตัวอย่างโค้ด
$searchKey = 'id';
$searchValue = 2;
// ดึงเฉพาะคอลัมน์ที่มีคีย์ 'id'
$column = array_column($data, $searchKey);
// ค้นหาค่าที่ต้องการในคอลัมน์
$index = array_search($searchValue, $column);
if ($index !== false) {
echo "พบข้อมูล: ";
print_r($data[$index]);
} else {
echo "ไม่พบข้อมูลที่มี {$searchKey} = {$searchValue}";
}
อธิบายการทำงาน
array_column($data, $searchKey)
จะดึงข้อมูลเฉพาะคอลัมน์id
จากอาเรย์data
array_search($searchValue, $column)
ค้นหา$searchValue
ในคอลัมน์ที่กำหนดและส่งคืนตำแหน่ง (index) ของข้อมูลที่พบ- หากพบข้อมูล (
$index
ไม่เป็นfalse
) จะสามารถใช้$data[$index]
เพื่อดึงข้อมูลทั้งหมดของตำแหน่งนั้นได้
ผลลัพธ์ที่ได้
พบข้อมูล: Array
(
[id] => 2
[name] => Bob
[age] => 30
)
ทั้งนี้ หากต้องการค้นหาด้วย Key อื่นก็สามารถทำได้ เช่น ค้นหาชื่อ Charlie
ใน name
$searchKey = 'name';
$searchValue = 'Charlie';
$column = array_column($data, $searchKey);
$index = array_search($searchValue, $column);
if ($index !== false) {
echo "พบข้อมูล: ";
print_r($data[$index]);
} else {
echo "ไม่พบข้อมูลที่มี {$searchKey} = {$searchValue}";
}
ผลลัพธ์ที่ได้
พบข้อมูล: Array
(
[id] => 3
[name] => Charlie
[age] => 35
)