สร้าง php ฟังก์ชัน ค้นหาค่าในตัวแปร array อย่างง่าย

เขียนเมื่อ 14 ปีก่อน โดย Ninenik Narkdee
ค้นหาค่า ตัวแปร array php ค้นหาใน array search array

คำสั่ง การ กำหนด รูปแบบ ตัวอย่าง เทคนิค ลูกเล่น การประยุกต์ การใช้งาน เกี่ยวกับ ค้นหาค่า ตัวแปร array php ค้นหาใน array search array

ดูแล้ว 18,538 ครั้ง


php ฟังก์ชัน ค้นหาค่าในตัวแปร array สามารถนำไปประยุกต์ในการค้นหา ข้อมูลในตัวแปร array ของ php

โค้ด และตัวอย่างการใช้งาน
 

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
function search_array($pathen,$arr){
    $arr_result=array();
    if(count($arr)>0){
        foreach($arr as $key=>$value){
            if(preg_match("@".$pathen."@i",$value)){
                $arr_result[$key]=$value;
            }
        }
        return $arr_result;
    }
}
?>

โค้ด และตัวอย่างการใช้งาน
 

1
2
3
4
5
6
<?php
$arr = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'yellow', 4 => 'ภาษาไทย');
echo "<pre>";
print_r(search_array("re",$arr));
echo "</pre>";
?>

 



   เพิ่มเติมเนื้อหา ครั้งที่ 1 วันที่ 17-05-2018


การค้นหาค่า จาก key ของ array วิธีการนี้จะใช้งานใน PHP 5.6 เป็นต้นไป


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
// ข้อมูลตัวอย่าง array สำหรับทดสอบ
$data_test = array(
    "object"=>array(
        "0"=>array(
            "id"=>1
            ),
        "1"=>array(
            "message"=>array(
                "id"=>22
            )
        )
    )
);
// ฟังก์ัช่นสำหรับค้นหา
function recursiveFind(array $array, $needle)
{
    $iterator  = new RecursiveArrayIterator($array);
    $recursive = new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::SELF_FIRST);
    $aHitList = array();
    foreach ($recursive as $key => $value) {
        if ($key === $needle) {
            array_push($aHitList, $value);
        }
    }
    return $aHitList;
}
// ค้นหา key ของ array ที่เท่ากับ id
$result_match = recursiveFind($data_test,"id");
 
// ทดสอบแสดงผลลัพธ์
print_r($result_match);
?>
 
ตัวอย่างผลลัพธ์
 
 
Array
(
    [0] => 1
    [1] => 22
)

 
 
สมมติเราต้องการหา "id" key ทีอยู่ใน "message" key สามารถเขียน php ตรวจสอบเบื้องต้นได้ดังนี้
 
1
2
3
4
5
6
7
8
<?php
$arr_message = recursiveFind($data_test,"message");
$message_id = NULL;
if(count($arr_message)>0){
    $message_id = $arr_message[0]['id'];
    echo $message_id;
}
?>


กด Like หรือ Share เป็นกำลังใจ ให้มีบทความใหม่ๆ เรื่อยๆ น่ะครับ











URL สำหรับอ้างอิง










เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ