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

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

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



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

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

<?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;
	}
}
?>

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

<?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 เป็นต้นไป


<?php
// ข้อมูลตัวอย่าง array สำหรับทดสอบ
$data_test = array(
	"object"=>array(
		"0"=>array(
			"id"=>1
			),
		"1"=>array(
			"message"=>array(
				"id"=>22
			)
		)
	)
);
// ฟังก์ัช่นสำหรับค้นหา
// https://stackoverflow.com/questions/3975585/search-for-a-key-in-an-array-recursively
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 ตรวจสอบเบื้องต้นได้ดังนี้
 
<?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) ขอบคุณครับ