PHP တွင် array_diff () function သည်နှစ်ခုသို့မဟုတ်နှစ်ခုထက်ပိုသော array များနှင့်နှိုင်းယှဉ်ရန်အသုံးပြုသည်။ များသောအားဖြင့်၎င်းသည်ရိုးရှင်းသော arrays များကိုကိုင်တွယ်ရန်အသုံးပြုသည်။ ဒါကြောင့် array_diff () အရာဝတ်ထု arrays ကိုင်တွယ်နိုင်သလား? မရရှိလျှင်, အလားတူလုပ်ဆောင်ချက်များကိုမည်သို့အကောင်အထည်ဖော်ရမည်နည်း။ ဤဆောင်းပါးသည်၎င်းကိုအသေးစိတ်ဖော်ပြလိမ့်မည်။
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
)
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 () ဟာ မတူညီတဲ့အရာဝတ်ထုတွေဟာမတူညီတဲ့အရာဝတ်ထုတွေနဲ့မပြန်ဘဲမတူတဲ့အတွက် ဒေါ်လာဘီလီယံ ပြန်ပို့တယ်။
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 ကိုတန်ဖိုးအားဖြင့်နှိုင်းယှဉ်နိုင်ပါတယ်။
Array_diff () function သည်အရာဝတ်ထုခင်းကျင်းမှုများကိုတိုက်ရိုက်မလုပ်ဆောင်နိုင်ပါ။ အရာဝတ်ထုများ၏ Arrays ကိုသင်နှိုင်းယှဉ်ရန်လိုအပ်ပါကအရာဝတ်ထုများကို custom conding results မှ array များသို့ပြောင်းလဲနိုင်သည်။ array_map () နှင့် toarray () နည်းလမ်းများ () နည်းစနစ်များသည်ဘုံဖြေရှင်းနည်းဖြစ်သည်။
ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည်အရာဝတ်ထု arrays များနှင့်နှိုင်းယှဉ်နိုင်ပြီး array_diff () နှင့်ဆင်တူသောလုပ်ဆောင်မှုများကိုအကောင်အထည်ဖော်နိုင်သည်။