หน้าหลัก » ภาษาพีเอชพี (PHP) » ภาษา PHP ตัวอย่างการค้นหาใน Array 2D ด้วยการกำหนด Key

ภาษา PHP ตัวอย่างการค้นหาใน Array 2D ด้วยการกำหนด Key




หากเรามีอาเรย์สองมิติ ดังนี้

$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
)