พอดีว่าผมมี อาเรย์อยุ่ 2 ชุดแล้วต้องการที่จะตรวจสอบว่าอาเรย์ 2 ชุดนี้เก็บค่าเหมือนกัน
โดยข้อมูลชุดแรกจะเป็นอาเรย์ที่ query มาจากฐานข้อมูลเพื่อนำ purchase_id ทั้งหมดออกมา ส่วนอาเรย์อีกชุดหนึ่งจะเป็นข้อมูลที่ผู้ใช้กรอก purchase_id มา
ถึงอยากจะทราบวิธีการตรวจเช็กว่า อาเรย์ชุดทีผู้ใช้กรอก มีค่าเดียวกับ อาเรย์ที่ query มาจากฐานข้อมูลถ้า ไม่มีก็ให้มันรีเทอร์ false ออกมา
อาเรย์ที่มาจากฐาน
อาเรย์ชุดทีผู้ใช้กรอก
อยากทราบว่ามีวิธีเขียน loop เช็กหรือมีวิธีไหนบ้าง ครับ
อยากทราบวิธีตรวจสอบว่าอาเรย์ 2 ชุดมีค่าเหมือนกันหรือเปล่า ครับ
Moderator: mindphp, ผู้ดูแลกระดาน
- waterwelon
- PHP Newbie
- โพสต์: 7
- ลงทะเบียนเมื่อ: 12/02/2020 3:35 pm
- flapjack
- PHP Newbie
- โพสต์: 3
- ลงทะเบียนเมื่อ: 04/11/2020 7:50 pm
Re: อยากทราบวิธีตรวจสอบว่าอาเรย์ 2 ชุดมีค่าเหมือนกันหรือเปล่า ครับ
ผม loop แบบปกติเลยครับ เช็กข้อมูลแต่ล่ะ item มีในข้อมูล query เลยหรือไม่
หรืออีกวิธีเอา field "purchase_id" ที่ผู้ใช้เลือกไป where database ตรงๆ แล้วค่อยมาเช็กว่ามีข้อมูลหรือไม่
ลองดูน่ะครับ
โค้ด: เลือกทั้งหมด
<?php
$dataQuerySql = array(
array( "purchase_id" => 307),
array( "purchase_id" => 5415),
array( "purchase_id" => 307648),
array( "purchase_id" => 5893),
array( "purchase_id" => 11833),
array( "purchase_id" => 33117),
array( "purchase_id" => 229203));
$dataUserSelect = array( "purchase_id" => array(307648,229203));
if ( check ($dataQuerySql,$dataUserSelect))
{
echo "true";
}
else
{
echo "false";
}
function check ($dataQuerySql,$dataUserSelect)
{
$sizeDataQuerySql = count($dataQuerySql);
$sizeDataUserSelect = count($dataUserSelect["purchase_id"]);
for ($i = 0; $i < $sizeDataUserSelect; $i++) {
$itemUserSelect = $dataUserSelect["purchase_id"][$i];
$check = false;
for ($j = 0; $j < $sizeDataQuerySql; $j++) {
$itemQuery = $dataQuerySql[$j]["purchase_id"];
if ($itemUserSelect == $itemQuery) {
$check = true;
}
}
if (!$check) {
return false;
}
}
return true;
}
?>
ลองดูน่ะครับ
ผู้ใช้งานขณะนี้
สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 58