ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => ข้อความที่เริ่มโดย: sirisak ที่ 20 เมษายน 2011, 19:13:37



หัวข้อ: [php] อยากสอบถามวิธีเปรียบเทียบข้อมูล 2 ชุด
เริ่มหัวข้อโดย: sirisak ที่ 20 เมษายน 2011, 19:13:37
คือว่าสมมุติผมมีข้อมูล
ชุดที่ 1
A B C 1 2 3
ชุดที่ 2
A C D 1 2 4


ถ้าผมต้องการเทียบให้ข้อมูลชุดที่ 2 คือข้อมูลใหม่และข้อมูลชุดที่ 1 คือข้อมูลเก่า
ผมจะเขียนโปรแกรมเปรียบเทียบได้อย่างไรว่า

1.มีข้อมูลอะไรที่มาใหม่บ้าง เมื่อเทียบกับชุดเก่า จากตัวอย่างคือ D และ 4
2.มีข้อมูลอะไรที่ซ้ำกันบ้าง เมื่อเทียบกับชุดเก่า จากตัวอย่างคือ A C 1 2
3.มีข้อมูลอะไรที่หายไปบ้าง เมื่อเทียบกับชุดเก่า จากตัวอย่างคือ B และ 3

รบกวนขอคำแนะนำด้วยครับ
ขอบคุณครับ  :wanwan017:



หัวข้อ: Re: [php] อยากสอบถามวิธีเปรียบเทียบข้อมูล 2 ชุด
เริ่มหัวข้อโดย: picharnan ที่ 20 เมษายน 2011, 19:45:38
โค๊ด:
<?php
$seta = array("A","B","C","1","2","3");
$setb = array("A","C","D","1","2","4");

$result_of_new compare_new_value($seta,$setb);
$result_of_intersect compare_intersect_value($seta,$setb);
$result_of_lost compare_lost_value($seta,$setb);

echo '<pre>';
print_r($result_of_new);
print_r($result_of_intersect);
print_r($result_of_lost);
echo '</pre>';

function compare_new_value($old,$new){
$temp = array();
$hit false;
foreach ($new as $ni => $nvalue) {
$hit false;
foreach ($old as $oi => $ovalue) {
if( $nvalue == $ovalue ){
$hit true;
}
}
if($hit == false){
array_push($temp$nvalue);
}
}
return $temp;
}

function compare_intersect_value($old,$new){
$temp = array();
$hit false;
foreach ($new as $ni => $nvalue) {
$hit false;
foreach ($old as $oi => $ovalue) {
if( $nvalue == $ovalue ){
$hit true;
}
}
if($hit == true){
array_push($temp$nvalue);
}
}
return $temp;
}

function compare_lost_value($old,$new){
$temp = array();
$hit false;
foreach ($old as $oi => $ovalue) {
$hit false;
foreach ($new as $ni => $nvalue) {
if( $nvalue == $ovalue ){
$hit true;
}
}
if($hit == false){
array_push($temp$ovalue);
}
}
return $temp;
}

?>


ลองดูครับน่าจะพอช่วยได้บ้าง


หัวข้อ: Re: [php] อยากสอบถามวิธีเปรียบเทียบข้อมูล 2 ชุด
เริ่มหัวข้อโดย: sirisak ที่ 20 เมษายน 2011, 19:54:39
ขอบคุณมากๆครับท่าน picharnan
แล้วทีนี้ผมอยากจะเอาค่าที่เป็น array ทั้งสองชุดที่ต้องการเปรียบเทียบ รับค่ามาจาก textbox จะได้ไหมครับ
หรือผมอยากจะดึงข้อมูลมาจาก database แล้วมาแปลงเป็น array เพื่อเปรียบเทียบ
จะต้องทำอย่างไรครับ ขอบคุณมากๆครับ  :wanwan017:


หัวข้อ: Re: [php] อยากสอบถามวิธีเปรียบเทียบข้อมูล 2 ชุด
เริ่มหัวข้อโดย: permanentrich ที่ 21 เมษายน 2011, 08:19:45
ช่วยดัน  :-[


หัวข้อ: Re: [php] อยากสอบถามวิธีเปรียบเทียบข้อมูล 2 ชุด
เริ่มหัวข้อโดย: kobkung ที่ 21 เมษายน 2011, 18:40:45
www.php.net/array (http://www.php.net/array)
จะ add จะเทียบมีหมด


หัวข้อ: Re: [php] อยากสอบถามวิธีเปรียบเทียบข้อมูล 2 ชุด
เริ่มหัวข้อโดย: Tee++; ที่ 22 เมษายน 2011, 10:34:23
1. array_diff
2. array_intersect, array_unique
3. array_diff แต่สับตำแหน่งกัน


หัวข้อ: Re: [php] อยากสอบถามวิธีเปรียบเทียบข้อมูล 2 ชุด
เริ่มหัวข้อโดย: dreamer ที่ 22 เมษายน 2011, 15:04:00
ขอบคุณมากๆครับท่าน picharnan
แล้วทีนี้ผมอยากจะเอาค่าที่เป็น array ทั้งสองชุดที่ต้องการเปรียบเทียบ รับค่ามาจาก textbox จะได้ไหมครับ
หรือผมอยากจะดึงข้อมูลมาจาก database แล้วมาแปลงเป็น array เพื่อเปรียบเทียบ
จะต้องทำอย่างไรครับ ขอบคุณมากๆครับ  :wanwan017:

รับค่าจาก textbox เช่นกรอก A,B,C,D ก็เอามาแปลงเป็น array ก่อน คือ $array = explode(",", $value_from_textbox);

อ่านจาก database

$sql = "select field_name from table_name";
$result = mysql_query($sql);
$array = array();
while($row = mysql_fetch_assoc($result))
{
  $array[] = $row["field_name"]
}

เอาค่า array ไปเที่ยบต่อ