လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> array_diff () အရာဝတ်ထု arrays ကိုင်တွယ်နိုင်ပါသလား?

array_diff () အရာဝတ်ထု arrays ကိုင်တွယ်နိုင်ပါသလား?

M66 2025-05-14

PHP တွင် array_diff () function သည်နှစ်ခုသို့မဟုတ်နှစ်ခုထက်ပိုသော array များနှင့်နှိုင်းယှဉ်ရန်အသုံးပြုသည်။ များသောအားဖြင့်၎င်းသည်ရိုးရှင်းသော arrays များကိုကိုင်တွယ်ရန်အသုံးပြုသည်။ ဒါကြောင့် array_diff () အရာဝတ်ထု arrays ကိုင်တွယ်နိုင်သလား? မရရှိလျှင်, အလားတူလုပ်ဆောင်ချက်များကိုမည်သို့အကောင်အထည်ဖော်ရမည်နည်း။ ဤဆောင်းပါးသည်၎င်းကိုအသေးစိတ်ဖော်ပြလိမ့်မည်။

1 ။ array_diff () function ကို၏အခြေခံအသုံးပြုမှု

Arraiff () function ၏အခြေခံအသုံးပြုမှုသည် array များအကြားဒြပ်စင်များကိုနှိုင်းယှဉ်ရန်နှင့်ပထမခင်းကျင်းမှုတွင်သာပေါ်လာသည့်သူများကိုပြန်ပို့ရန်ဖြစ်သည်။ ၎င်း၏ function ကိုလက်မှတ်သည်အောက်ပါအတိုင်းဖြစ်သည် -

 array_diff(array $array1, array $array2, array ...$arrays): array

ဤလုပ်ဆောင်ချက်သည် parameters နှစ်ခုသို့မဟုတ်နှစ်ခုထက်ပိုသောခင်းကျင်းမှုများပြုလုပ်ပြီးထူးခြားသော element များကိုပထမဆုံးခင်းကျင်းမှုတွင်ပြန်ပို့သည်။ ဤတွင်ရိုးရှင်းသောဥပမာတစ်ခုဖြစ်သည်။

 $array1 = [1, 2, 3, 4];
$array2 = [3, 4, 5, 6];

$result = array_diff($array1, $array2);
print_r($result);

ထုတ်လုပ်မှု -

 Array
(
    [0] => 1
    [1] => 2
)

2 ။ array_diff () အရာဝတ်ထု arrays ကိုင်တွယ်နိုင်သလား?

array_diff () function သည် "တန်ဖိုးနှိုင်းယှဉ်ချက်" ပေါ်တွင်အခြေခံသည်။ ဆိုလိုသည်မှာ၎င်းသည် array တစ်ခုတွင် element များကိုနှိုင်းယှဉ်ရန် == အော်ပရေတာကိုအသုံးပြုသည်။ Object Array အတွက် Array_diff () ကို ပုံမှန်ခင်းကျင်းခြင်းနှင့်တိုက်ရိုက်နှိုင်းယှဉ်။ မရပါ။ အရာဝတ်ထုများသည် PHP တွင်ရည်ညွှန်းချက်အမျိုးအစားများဖြစ်ပြီး ,

ဥပမာအားဖြင့်, ကျွန်ုပ်တို့တွင်တူညီသောအကြောင်းအရာများနှင့်အတူအရာဝတ်ထုနှစ်ခုရှိသည်ဆိုပါစို့။

 class Person {
    public $name;
    public $age;

    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }
}

$obj1 = new Person('John', 30);
$obj2 = new Person('John', 30);
$obj3 = new Person('Jane', 25);

$array1 = [$obj1, $obj2];
$array2 = [$obj2, $obj3];

$result = array_diff($array1, $array2);
print_r($result);

ထုတ်လုပ်မှု -

 Array
(
    [0] => Person Object
        (
            [name] => John
            [age] => 30
        )
)

ဒီဥပမာမှာ attrib1 onj1 နဲ့ $ obj2 ရဲ့ attribute တန်ဖိုးတွေကအတူတူပဲဖြစ်ပေမယ့် array_diff () ဟာ မတူညီတဲ့အရာဝတ်ထုတွေဟာမတူညီတဲ့အရာဝတ်ထုတွေနဲ့မပြန်ဘဲမတူတဲ့အတွက် ဒေါ်လာဘီလီယံ ပြန်ပို့တယ်။

3 ။ array_diff () ကိုအသုံးပြုနည်း။

array_diff () ကို သုံး. အရာဝတ်ထုများကိုနှိုင်းယှဉ်ရန် () ကိုနှိုင်းယှဉ်ရန်, အသုံးများသောနည်းလမ်းမှာ array_map () function ကိုအသုံးပြုရန်အတွက်အရာဝတ်ထုများကို arrays များသို့ပြောင်းလဲရန်နှင့်သူတို့၏ attribute တန်ဖိုးများကိုနှိုင်းယှဉ်ရန်ဖြစ်သည်။

array_map () အပေါ်အခြေခံပြီးအဖြေမှန်တစ်ခုမှာအရာဝတ်ထုများကို attribute arrays များသို့ပြောင်းလဲခြင်းဖြင့်နှိုင်းယှဉ်သည်။

 class Person {
    public $name;
    public $age;

    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }

    // တစ်ခုခင်းကျင်းဖို့ပြောင်းပါ,အဆင်ပြေနှိုင်းယှဉ်
    public function toArray() {
        return ['name' => $this->name, 'age' => $this->age];
    }
}

$obj1 = new Person('John', 30);
$obj2 = new Person('John', 30);
$obj3 = new Person('Jane', 25);

$array1 = [$obj1, $obj2];
$array2 = [$obj2, $obj3];

// အသုံးပြုarray_map将对象တစ်ခုခင်းကျင်းဖို့ပြောင်းပါ
$array1 = array_map(function($obj) {
    return $obj->toArray();
}, $array1);

$array2 = array_map(function($obj) {
    return $obj->toArray();
}, $array2);

// အသုံးပြုarray_diffနှိုင်းယှဉ်ပါ
$result = array_diff($array1, $array2);
print_r($result);

ထုတ်လုပ်မှု -

 Array
(
    [0] => Array
        (
            [name] => John
            [age] => 30
        )
)

ဒီဥပမာမှာအရာဝတ်ထုရဲ့ဂုဏ်သတ္တိများကို array အဖြစ်ပြောင်းလဲဖို့ လူတန်းစား အတွက် Tarray () နည်းလမ်းကို ady လုပ်ပါ။ ထို့နောက် array_map () ကို သုံး. attribute array သို့ပြောင်းလဲရန်နှင့်နှိုင်းယှဉ်ရန် array_diff () ကို အသုံးပြုပါ။ ဤနည်းအားဖြင့်သင်သည်အရာဝတ်ထု array ကိုတန်ဖိုးအားဖြင့်နှိုင်းယှဉ်နိုင်ပါတယ်။

4 ။ နိဂုံးချုပ်

Array_diff () function သည်အရာဝတ်ထုခင်းကျင်းမှုများကိုတိုက်ရိုက်မလုပ်ဆောင်နိုင်ပါ။ အရာဝတ်ထုများ၏ Arrays ကိုသင်နှိုင်းယှဉ်ရန်လိုအပ်ပါကအရာဝတ်ထုများကို custom conding results မှ array များသို့ပြောင်းလဲနိုင်သည်။ array_map () နှင့် toarray () နည်းလမ်းများ () နည်းစနစ်များသည်ဘုံဖြေရှင်းနည်းဖြစ်သည်။

ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည်အရာဝတ်ထု arrays များနှင့်နှိုင်းယှဉ်နိုင်ပြီး array_diff () နှင့်ဆင်တူသောလုပ်ဆောင်မှုများကိုအကောင်အထည်ဖော်နိုင်သည်။