เลข 0 ที่ได้มาเกิดจากการ explode จาก string
ตัวอย่าง
$string = "test-0";
$zero = explode("-",$string);
if($zero[1] != ""){
echo $zero[1];
}
คือผมต้องการให้ 0 มีค่าเป็นตัวเลข แต่เวลาเอาไปเช็ค if 0 จะมีค่าเป็นค่าว่าง หรือไม่มีค่าตลอดเลย พอใช้ intval เข้าช่วย ค่าที่มันเป็นค่าว่าง "" ก็จะมีค่าเป็น 0 ไปด้วย
ไม่ทราบว่าต้องทำยังไง ให้ 0 มีค่าเป็นตัวเลขเพื่อที่จะเช็ค if ได้ครับ
ขอบคุณครับ :wanwan017:
ใช้ (int)$zero[1] ดูครับ
เช็คแบบนี้แทนได้ไหมครับ
if($zero[1] !== "")
if(isset($zero[1])){
echo $zero[1];
}
ใช้ strcmp ได้ไหมครับ
ลองดูนะครับ
- อันนี้จะเชค็ว่าถ้าตัดแล้วไม่เป็นค่าว่าง(ไม่ว่างเท่านั้น)จะมาทำการแปลงเป็นเลข
- เลขหลังจากนั้นจะทำไรต่อก็ว่าไป(แต่หลัง - ต้องเป็นตัวเลขเท่านั้นถ้ามีตัวหนังสือบนต้องเล่นพวก regex ด้วย)
- ถ้าไม่ใช่จะบอกว่าเป็นค่าว่างนะ (จะเปลี่ยนเป้นคำนวณไรก็ได้)
ลองดูครับ
$string = "test-";
$zero = explode("-",$string);
if($zero[1]!=null)
{
echo $zero = intval($zero[1]);
}
else
{
echo 'ไม่มีตัวเลข';
}
อีกแบบนะครับดีกว่าแบบแรก
- ใช้ is_numeric แทนเพื่อดูว่าค่าที่ตัดนั้นมีตัวหนังสือผสมไหม ถ้ามีจะบอกว่า ไม่มีตัวเลข (is_numeric คือตรวจว่าค่านั้นเป็นตัวเลขไหม)
- ถ้าไม่มีตัวหนังสือผสมจะถูกแปลงเป็น ตัวเลขทันที
$string = "test-85aa";
$zero = explode("-",$string);
if(is_numeric($zero[1]))
{
echo $zero = intval($zero[1]);
}
else
{
echo 'ไม่มีตัวเลข';
}
ขอบคุณทุกท่านมากนะครับ +1 ให้ทุกท่านเลย เดี๋ยวขอตัวลองก่อน เกิดผลยังไง จะมาสอบถามอีกรอบนะครับ
if (! empty($zero[1])) {
}