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

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

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

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


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 สำหรับอ้างอิง





คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )







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