อยากทราบวิธีตรวจสอบว่าอาเรย์ 2 ชุดมีค่าเหมือนกันหรือเปล่า ครับ

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
waterwelon
PHP Newbie
PHP Newbie
โพสต์: 7
ลงทะเบียนเมื่อ: 12/02/2020 3:35 pm

อยากทราบวิธีตรวจสอบว่าอาเรย์ 2 ชุดมีค่าเหมือนกันหรือเปล่า ครับ

โพสต์ที่ยังไม่ได้อ่าน โดย waterwelon »

พอดีว่าผมมี อาเรย์อยุ่ 2 ชุดแล้วต้องการที่จะตรวจสอบว่าอาเรย์ 2 ชุดนี้เก็บค่าเหมือนกัน

โดยข้อมูลชุดแรกจะเป็นอาเรย์ที่ query มาจากฐานข้อมูลเพื่อนำ purchase_id ทั้งหมดออกมา ส่วนอาเรย์อีกชุดหนึ่งจะเป็นข้อมูลที่ผู้ใช้กรอก purchase_id มา

ถึงอยากจะทราบวิธีการตรวจเช็กว่า อาเรย์ชุดทีผู้ใช้กรอก มีค่าเดียวกับ อาเรย์ที่ query มาจากฐานข้อมูลถ้า ไม่มีก็ให้มันรีเทอร์ false ออกมา

อาเรย์ที่มาจากฐาน
Untitled222.png
Untitled222.png (30.94 KiB) Viewed 7891 times
อาเรย์ชุดทีผู้ใช้กรอก
Untitle222.png
Untitle222.png (5.67 KiB) Viewed 7891 times
อยากทราบว่ามีวิธีเขียน loop เช็กหรือมีวิธีไหนบ้าง ครับ
ภาพประจำตัวสมาชิก
flapjack
PHP Newbie
PHP Newbie
โพสต์: 3
ลงทะเบียนเมื่อ: 04/11/2020 7:50 pm

Re: อยากทราบวิธีตรวจสอบว่าอาเรย์ 2 ชุดมีค่าเหมือนกันหรือเปล่า ครับ

โพสต์ที่ยังไม่ได้อ่าน โดย flapjack »

ผม loop แบบปกติเลยครับ เช็กข้อมูลแต่ล่ะ item มีในข้อมูล query เลยหรือไม่

โค้ด: เลือกทั้งหมด

<?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;
}

?>
หรืออีกวิธีเอา field "purchase_id" ที่ผู้ใช้เลือกไป where database ตรงๆ แล้วค่อยมาเช็กว่ามีข้อมูลหรือไม่
ลองดูน่ะครับ
รูปภาพ
ตอบกลับโพส

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 58