ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingสอบถามครับ php ว่าเราจะตรวจสอบตัวเลขที่เท่ากันยังไง โดยไม่สนใจที่ตำแหน่ง
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: สอบถามครับ php ว่าเราจะตรวจสอบตัวเลขที่เท่ากันยังไง โดยไม่สนใจที่ตำแหน่ง  (อ่าน 2905 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
gooble
Newbie
*

พลังน้ำใจ: 6
ออฟไลน์ ออฟไลน์

กระทู้: 71



ดูรายละเอียด
« เมื่อ: 29 กรกฎาคม 2014, 07:41:18 »

ยกตัวอย่างนะครับ เช่น  01 - 10  และ  13 - 31 

เราจะมีวิธีเช็คยังไงว่า  01 เท่ากับ 10   หรือ  13  เท่ากับ 31

คือเราจะเช้คแค่ว่า เลข 2 ตำแหน่งมีค่าเท่ากันหรือเปล่า โดยไม่สนใจตำแหน่งที่อยู่

อีกข้อครับ จากด้านบน  ถ้าเอาตัวเลขไปใส่ใน array  เช่น  array("01", "10", "11", "31","13","11",);

อยากได้ผลลัพท์เป็น  01, 11, 13  โดยตัดค่าที่มันซ้ำออกอะครับ  ใครพอจะแนะนำได้บ้างครับ
บันทึกการเข้า
manussawin
ก๊วนเสียว
*

พลังน้ำใจ: 33
ออฟไลน์ ออฟไลน์

กระทู้: 364



ดูรายละเอียด
« ตอบ #1 เมื่อ: 29 กรกฎาคม 2014, 07:50:07 »

อ้างถึง
<?php
$input = array("a" => "green", "red", "b" => "green", "blue", "red");
$result = array_unique($input);
print_r($result);
?>


function.array-unique
บันทึกการเข้า
esanza.com
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 270
ออฟไลน์ ออฟไลน์

กระทู้: 3,672



ดูรายละเอียด
« ตอบ #2 เมื่อ: 29 กรกฎาคม 2014, 09:18:38 »

ยกตัวอย่างนะครับ เช่น  01 - 10  และ  13 - 31 

เราจะมีวิธีเช็คยังไงว่า  01 เท่ากับ 10   หรือ  13  เท่ากับ 31

คือเราจะเช้คแค่ว่า เลข 2 ตำแหน่งมีค่าเท่ากันหรือเปล่า โดยไม่สนใจตำแหน่งที่อยู่

อีกข้อครับ จากด้านบน  ถ้าเอาตัวเลขไปใส่ใน array  เช่น  array("01", "10", "11", "31","13","11",);

อยากได้ผลลัพท์เป็น  01, 11, 13  โดยตัดค่าที่มันซ้ำออกอะครับ  ใครพอจะแนะนำได้บ้างครับ

อธิบายได้ละเอียดดีครับ แต่ความเป็นไปได้ค่อนข้างยากครับ
รอเทพมาตอบ ช่วยดันครับ  wanwan016
บันทึกการเข้า

ใครต้องการเช่าโฮสที่มี Control Panel ดีๆ
และ Support ดี แนะนำ => โฮสอะตอม
zero1150kfc
สมุนแก๊งเสียว
*

พลังน้ำใจ: 49
ออฟไลน์ ออฟไลน์

กระทู้: 753



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 29 กรกฎาคม 2014, 09:20:39 »

ยกตัวอย่างนะครับ เช่น  01 - 10  และ  13 - 31 

เราจะมีวิธีเช็คยังไงว่า  01 เท่ากับ 10   หรือ  13  เท่ากับ 31

คือเราจะเช้คแค่ว่า เลข 2 ตำแหน่งมีค่าเท่ากันหรือเปล่า โดยไม่สนใจตำแหน่งที่อยู่

อีกข้อครับ จากด้านบน  ถ้าเอาตัวเลขไปใส่ใน array  เช่น  array("01", "10", "11", "31","13","11",);

อยากได้ผลลัพท์เป็น  01, 11, 13  โดยตัดค่าที่มันซ้ำออกอะครับ  ใครพอจะแนะนำได้บ้างครับ

้ถ้าเข้าใจไม่ผิด ก็ if ดักมันไปเลย ห้าๆๆ
บันทึกการเข้า

วีพีเอสถูก บริการเช่าเครื่อง Server (เสมือน)ราคาถูกจาก VPSTOOK เริ่มต้นเพียง 350 บาทเท่านั้น!!
ได้รับการบริการที่เหนือกว่าในราคาที่ถูกกว่าท้องตลาดทั่วไป
Free กันยิง Firewall (DNS Amp, NTP Amp, MSSQL Amp, SSDP)
สามารถอ่านรายละเอียดได้ที่ VPSTOOK.COM
dekdoo
สมุนแก๊งเสียว
*

พลังน้ำใจ: 58
ออฟไลน์ ออฟไลน์

กระทู้: 895



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 29 กรกฎาคม 2014, 10:47:05 »

ขอตอบข้อที่ 2 ก่อนแล้วกันครับ เพราะข้อที่ 1 ไม่ค่อยเข้าใจคำถาม

ตัวอย่างโค้ด :

โค๊ด:
<?php
$array 
= array( "นก","ไก่""ปู""นก","ปู""ปลา" );
$result array_unique$array );
echo 
'<pre>';
print_r($result);
echo 
'</pre>';
?>



ผลลัพธ์ :
โค๊ด:
Array
(
    [0] => นก
    [1] => ไก่
    [2] => ปู
    [5] => ปลา
)
บันทึกการเข้า

esanza.com
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 270
ออฟไลน์ ออฟไลน์

กระทู้: 3,672



ดูรายละเอียด
« ตอบ #5 เมื่อ: 29 กรกฎาคม 2014, 11:00:45 »

ขอตอบข้อที่ 2 ก่อนแล้วกันครับ เพราะข้อที่ 1 ไม่ค่อยเข้าใจคำถาม

ตัวอย่างโค้ด :

โค๊ด:
<?php
$array 
= array( "นก","ไก่""ปู""นก","ปู""ปลา" );
$result array_unique$array );
echo 
'<pre>';
print_r($result);
echo 
'</pre>';
?>



ผลลัพธ์ :
โค๊ด:
Array
(
    [0] => นก
    [1] => ไก่
    [2] => ปู
    [5] => ปลา
)

โค๊ด:
เราจะมีวิธีเช็คยังไงว่า  01 เท่ากับ 10   หรือ  13  เท่ากับ 31

 wanwan016
บันทึกการเข้า

ใครต้องการเช่าโฮสที่มี Control Panel ดีๆ
และ Support ดี แนะนำ => โฮสอะตอม
icez
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 296
ออฟไลน์ ออฟไลน์

กระทู้: 2,886



ดูรายละเอียด
« ตอบ #6 เมื่อ: 29 กรกฎาคม 2014, 11:04:22 »

ที่งงข้อ 1 กันเพราะว่า 01 มันจะเท่ากะ 10 ได้ยังไงแค่นั้นแหละครับ

หรือหมายถึงว่ามีตัวอักษรเหมือนกันรึเปล่า?
บันทึกการเข้า

THZHost SSD Hosting ไทย/สิงคโปร์ พร้อม firewall ป้องกันการยิงเว็บ + scan ไวรัสในเว็บ
ekateikate
ก๊วนเสียว
*

พลังน้ำใจ: 85
ออฟไลน์ ออฟไลน์

กระทู้: 480



ดูรายละเอียด
« ตอบ #7 เมื่อ: 29 กรกฎาคม 2014, 11:13:16 »

ขอตอบ ข้อแรก นะ

13 = 31
หา length ของ 13 ได้เท่ากับ 2

แล้วก็วน loop lenght

เช็คตำแหน่งแรก
1 -> 3 = 0
1 -> 1 = 1

เช็คตำแหน่งที่สอง
3 -> 3 = 1
3 -> 1 = 0

เหมือนกัน 2 ตำแหน่ง

ไม่รู้ว่าอธิบายงงรึเปล่านะ

« แก้ไขครั้งสุดท้าย: 29 กรกฎาคม 2014, 11:16:18 โดย ekateikate » บันทึกการเข้า

ttong
สมุนแก๊งเสียว
*

พลังน้ำใจ: 33
ออฟไลน์ ออฟไลน์

กระทู้: 633



ดูรายละเอียด
« ตอบ #8 เมื่อ: 29 กรกฎาคม 2014, 11:53:01 »

ผมลองคิดข้อหนึ่งเล่นๆ นะครับ

สมมุติ 13 = 31
เราเอา 13 เป็นตัวตั้ง เก็บลงตัวแปร $x
แล้วแตก 31 ออกเป็น 3 กับ 1 (อาจเก็บเป็น array)

จากนั้นแยกทำตามข้อ
a) เช็คว่าใน $x มี 3 อยู่หรือไม่
b) เช็คว่าใน $x มี 1 อยู่หรือไม่

ถ้า a และ b คำตอบคือใช่ทั้งสองข้อ ผลที่ได้คือ เท่ากัน

งงมั้ยครับ  Tongue

ปล. ผมคิดว่า อาจจะใช้ Regular Expression ช่วยได้นะ
บันทึกการเข้า

น้องพี่ต้าร์
ก๊วนเสียว
*

พลังน้ำใจ: 102
ออฟไลน์ ออฟไลน์

กระทู้: 388



ดูรายละเอียด
« ตอบ #9 เมื่อ: 29 กรกฎาคม 2014, 13:23:07 »

ใช่แบบที่ต้องการมะ บ้านๆ


โค๊ด:
<?php

$start
1;
$end 1000;
$arr = array();
for(
$i=$start;$i<=$end;$i++){

$countnum strlen($i);

if(
$countnum>2){
$z '%0'.$countnum.'d';
}else{
$z '%02d';
}
$x sprintf($z$i);
$pieces =$x;
$pieces str_split($x);
for (
$u $countnum-1$u>=0;$u--){

$arrp[] = $pieces[$u];
}
$pieces join("",$arrp);
$arrp null;

for($n=$start;$n<=$end;$n++){

if($pieces == $n){

$check sprintf($z$n). '=' .$x;
if (in_array($check$arr)){
}else{
$arr[] = $x'=' .sprintf($z$n);
}
}
}
}

foreach (
$arr as $number) {
   echo 
$number.'<br>';
}

?>

« แก้ไขครั้งสุดท้าย: 29 กรกฎาคม 2014, 14:21:47 โดย น้องพี่ต้าร์ » บันทึกการเข้า
sbaydee
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 337
ออฟไลน์ ออฟไลน์

กระทู้: 1,622



ดูรายละเอียด
« ตอบ #10 เมื่อ: 29 กรกฎาคม 2014, 14:07:41 »

โค๊ด:
function check_number($num1,$num2){
$array1 = str_split($num1);
$array2 = str_split($num2);
if(count(array_diff($array1,$array2)) >0){
return TRUE;
}else{
return FALSE;
}
}
ลองดูครับว่าตรงกับความต้องการรึเปล่า
« แก้ไขครั้งสุดท้าย: 29 กรกฎาคม 2014, 14:08:07 โดย sbaydee » บันทึกการเข้า
MiithRanDir
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 134
ออฟไลน์ ออฟไลน์

กระทู้: 1,427



ดูรายละเอียด เว็บไซต์
« ตอบ #11 เมื่อ: 29 กรกฎาคม 2014, 16:30:29 »

แบบลูกทุ่งครับ

โค๊ด:
<?
$num1 = 01;
$num2 = 10;
$j=0;
$k=1;

if(strlen($num1) < 2) { $num1 = '0' . $num1;}
if(strlen($num2) < 2) { $num2 = '0' . $num2;}

for($i=0;$i<strlen($num1);$i++) {
if(substr($num1,$k,1) == substr($num2,$j,1)) {
$result = "YES";
}
else {
$result = "NO";
}
$k--;
$j++;
}
echo $result;
?>
บันทึกการเข้า

gooble
Newbie
*

พลังน้ำใจ: 6
ออฟไลน์ ออฟไลน์

กระทู้: 71



ดูรายละเอียด
« ตอบ #12 เมื่อ: 29 กรกฎาคม 2014, 18:44:32 »

อ้างถึง
<?php

$start= 1;
$end = 1000;
$arr = array();
for($i=$start;$i<=$end;$i++){

$countnum = strlen($i);

if($countnum>2){
   $z = '%0'.$countnum.'d';
}else{
   $z = '%02d';
}
$x = sprintf($z, $i);
$pieces =$x;
$pieces = str_split($x);
for ($u = $countnum-1; $u>=0;$u--){

   $arrp[] = $pieces[$u];
}
$pieces = join("",$arrp);
$arrp = null;

   for($n=$start;$n<=$end;$n++){

      if($pieces == $n){
      
      $check = sprintf($z, $n). '=' .$x;
         if (in_array($check, $arr)){
         }else{
            $arr[] = $x. '=' .sprintf($z, $n);
         }
      }
   }
}

foreach ($arr as $number) {
   echo $number.'<br>';
}

?>
ขอบคุณมากครับ แบบนี้เลย  wanwan020
บันทึกการเข้า
CakePHP
Newbie
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 59



ดูรายละเอียด
« ตอบ #13 เมื่อ: 29 กรกฎาคม 2014, 19:45:39 »

ผมมั่วๆ เอาน่ะครับ ไม่ค่อยเก่ง PHP
ผมพยายามลด Code ลงให้น้อยลงประมาณ 50%
ผิด ถูก ประการใดขอท่านเซียนทั้งหลาย ช่วยแนะนำ
โค๊ด:
$a = array("01", "10", "11", "31","13","11", "07","70", "07");
$t = array();
for($i=0; $i<sizeof($a); $i++){
for($j=0; $j<sizeof($a); $j++){
if(!in_array($a[$i], $t) && !in_array(strrev($a[$i]), $t)){
$t[] = $a[$i];
break;
}
}
}
print_r($t);

บันทึกการเข้า
hurahura
สมุนแก๊งเสียว
*

พลังน้ำใจ: 20
ออฟไลน์ ออฟไลน์

กระทู้: 868



ดูรายละเอียด
« ตอบ #14 เมื่อ: 29 กรกฎาคม 2014, 20:16:10 »

จากโจทย์ "คือเราจะเช้คแค่ว่า เลข 2 ตำแหน่งมีค่าเท่ากันหรือเปล่า โดยไม่สนใจตำแหน่งที่อยู่"

มันก็แค่สลับตำแหน่งกันง่ายๆไม่ใช่เหรอ หรือผมเข้าใจอะไรผิด?

โค๊ด:
$a = 13;
$b = 31;

if($a == $b || $a == substr($b,1).substr($b,0,1)){
echo "เท่ากัน";
}
บันทึกการเข้า
CakePHP
Newbie
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 59



ดูรายละเอียด
« ตอบ #15 เมื่อ: 29 กรกฎาคม 2014, 22:57:31 »

ผมมั่วๆ เอาน่ะครับ ไม่ค่อยเก่ง PHP
ผมพยายามลด Code ลงให้น้อยลงประมาณ 50%
ผิด ถูก ประการใดขอท่านเซียนทั้งหลาย ช่วยแนะนำ
โค๊ด:
$a = array("01", "10", "11", "31","13","11", "07","70", "07");
$t = array();
for($i=0; $i<sizeof($a); $i++){
for($j=0; $j<sizeof($a); $j++){
if(!in_array($a[$i], $t) && !in_array(strrev($a[$i]), $t)){
$t[] = $a[$i];
break;
}
}
}
print_r($t);



เอาใหม่ ลด Code ลงได้อีกแบบมั่วๆ น่ะครับ
โค๊ด:
//ข้อแรก
$str1 = "01";
$str2 = "10";
if($str1 == $str2 || $str1 == strrev($str2)){
echo "เท่ากัน<br />";
}

//ข้อสอง
$a = array("01", "10", "11", "31","13","11", "07","70", "07");
$t = array();
for($i=0; $i<sizeof($a); $i++){
if(!in_array($a[$i], $t) && !in_array(strrev($a[$i]), $t)){
$t[] = $a[$i];
}
}
print_r($t);


บันทึกการเข้า
goldxp
สมุนแก๊งเสียว
*

พลังน้ำใจ: 73
ออฟไลน์ ออฟไลน์

กระทู้: 557



ดูรายละเอียด เว็บไซต์
« ตอบ #16 เมื่อ: 29 กรกฎาคม 2014, 23:57:40 »

ถ้าไม่สนใจตำแหน่งที่อยู่นะครับก็ sort ก่อนให้มันเรียงจากน้อยไปมากแล้วค่อยเปรียบเทียบครับ
โค๊ด:
<?php
$a 
= array("01""10""11""31","13","11""101""110");
$list = array();
foreach(
$a as $i){
   
$conv str_split($i);
   
sort($conv);
   if (!
in_array($conv,$list)){
         
$list[] = $conv;
   }
}
foreach(
$list as $i){
   echo 
implode("",$i),',';
}
บันทึกการเข้า

หน้า: [1]   ขึ้นบน
พิมพ์