การ check ค่า array

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา การ check ค่า array

การ check ค่า array
ผมมีค่าแบบนี้ครับ
$data=array(
"id_user"=>$id_user,
);

$data=array(
"session"=>$session,
"id_user"=>$id_user,
);

ผมจะทำยังไงได้บ้างครับ ถึงจะเช็คว่ามันเป็น data ตัวไหน เพราะตัวที่ส่งกลับมาจะเหมือนกัน แต่ array ข้างในไม่เหมือนกัน ผมลองใช้แบบนี้ก็ไม่ออกครับ

if($data['session'])
{
     .....
}
ผมจะมีทางไหนได้บ้างครับ ค่าที่ส่งกลับมาจากคนอื่น ไม่สามารถเปลี่ยนแปลงลได้ ให้เราเช็คเอาเองว่าค่าที่ส่งกลับมาเป็นประเภทไหนอ่ะครับ


Aong35258 124.122.145.xxx 23-04-2016 14:08:06

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

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


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


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

 ความคิดเห็นที่ 1
 ไม่เข้าใจที่ถาม 
เดาๆ ลองซ้อน array เข้าไปอีก โดยใช้ตัวที่แยกว่าเป็นค่าตัวไหนเป็น key เช่น

$data=array(
	"a"=>array(
		"session"=>1,
		"id_user"=>2,	
	),
	"b"=>array(
		"session"=>2,
		"id_user"=>3,		
	)
);
echo "<pre>";
print_r($data);
echo "</pre>";


ninenik 122.155.42.xxx 23-04-2016
 ความคิดเห็นที่ 2
คือแบบนี้ครับ ผมมี function ไว้ตรวจสอบ user โดยเรียกไปที่ server ของคนอื่นครับ ซึ่งเมื่อเรียกไปแล้วเค้าจะตอบกลับมาเป็น data แบบ array ที่นี้ค่าที่ส่งกลับมาจะมีชื่อว่า response ถ้า user ดังกล่าวเคยลงทะเบียนไว้แล้ว จะมีค่า array แบบที่ 1 แต่ถ้ายังไม่เคยลงทะเบียนจะมีแบบที่ 2 ครับ ผมจึงอยากทราบว่าผมจะตรวจสอบได้อย่างไรว่าที่ส่งกลับมาเป็น array ประเภทไหนครับ

แบบที่ 1
$response=array(
"id_user"=>$id_user,
);

แบบที่ 2
$response=array(
"session"=>$session,
"id_user"=>$id_user,
);

จากการทดลองผมได้ใช้แบบนี้

if($response['session'])

เพื่อจะตรวจสอบว่ามีค่า session ส่งกลับมาหรือไม่ ถ้ายังไม่มีแสดงว่ายังไม่ลงทะเบียน แต่มันทำไม่ได้ครับหาก $response ที่ส่งกลับมาเป็นแบบประเภทที่ 1 มันฟ้องว่าค่าที่เราจะตรวจสอบไม่มีอยู่จริง เพราะประเภทที่ 1 ไม่มี sesssion ครับ


aong35258 124.122.145.xxx 23-04-2016 15:29
 ความคิดเห็นที่ 3
 ในเมื่อเราทดสอบค่า key session ว่ามีหรือไม่มี ใช้ if else ไม่ได้หรอ
<?php

if(isset($response['session'])){
	// ถ้ามีแสดงว่ายังไม่เคยลงทะเบียน เป็นแบบที่ 2
}else{
	// ถ้าไม่มีแสดงว่าเคยลงทะเบียนแล้วเป็นแบบที่ 1
}

?>



ninenik 122.155.42.xxx 23-04-2016
 ความคิดเห็นที่ 4
โหยยยย ขอบคุณมากกกกกกๆๆ เลยครับ ลืมไปเลยว่าเคยมี isset 


aong35258 124.122.145.xxx 23-04-2016 16:49
1






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