PHP တွင် array_flip () function ကို array ၏သော့များနှင့်တန်ဖိုးများကိုလဲလှယ်ရန်အသုံးပြုသည်။ ပုံမှန်ခင်းကျင်းတန်ဖိုးများအတွက် array_flip () အလွန်ချောချောမွေ့မွေ့လုပ်ဆောင်သည်။ သို့သော်ဤလုပ်ဆောင်မှုသည်အရာဝတ်ထုများ၏ပြ issue နာများရှိအရာဝတ်ထုများကိုတန်ဖိုးများအဖြစ်တန်ဖိုးများကိုမည်သို့ကိုင်တွယ်သည်နှင့် ပတ်သက်. အသေးစိတ်ဆွေးနွေးမှုများပြုလုပ်နိုင်သည်။
ပထမ ဦး စွာ Array_flip ၏အခြေခံအသုံးပြုမှုကိုကြည့်ကြစို့။ ကျွန်ုပ်တို့တွင်ရိုးရှင်းသော associative array ရှိသည်ဆိုပါစို့ကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
$array = [
"a" => "apple",
"b" => "banana",
"c" => "cherry"
];
$flipped = array_flip($array);
print_r($flipped);
output ကိုဖြစ်လိမ့်မည်:
Array
(
[apple] => a
[banana] => b
[cherry] => c
)
အပေါ်ကပြထားတဲ့အတိုင်း array_flip () သည် ခင်းကျင်းမှု၏တန်ဖိုးကိုသော့တစ်ခုထဲသို့ပြောင်းလဲစေပြီးမူရင်းသော့သည်တန်ဖိုးတစ်ခုဖြစ်လာသည်။ ဤစစ်ဆင်ရေးသည်အလွန်တိုက်ရိုက်ဖြစ်ပြီးအခြေခံအချက်အလက်စာများ (ဥပမာ strings, ကိန်းဂဏန်းများစသည်တို့စသည်တို့) တွင်ကောင်းစွာလုပ်ဆောင်သည်။
Array ၏တန်ဖိုးသည်အရာဝတ်ထုတစ်ခုဖြစ်သောအခါ array_flip () ၏အပြုအမူသည်မလွယ်ကူပါ။ အောက်ပါကုဒ်ကိုကြည့်ရအောင်။
class Fruit {
public $name;
public function __construct($name) {
$this->name = $name;
}
}
$array = [
"a" => new Fruit("apple"),
"b" => new Fruit("banana"),
"c" => new Fruit("cherry")
];
$flipped = array_flip($array);
print_r($flipped);
သင် output ကိုမျှော်လင့်လိမ့်မယ်:
Array
(
[apple] => a
[banana] => b
[cherry] => c
)
သို့သော်အမှန်တကယ်ရလဒ်မဟုတ်ပါ။ အရာဝတ်ထုတစ်ခုကို array_flip () ကို array -flip () ကိုအသုံးမပြုနိုင်တဲ့အတွက်အရာဝတ်ထုတစ်ခုကိုတန်ဖိုးထားဖို့ကြိုးစားတဲ့အခါ PHP ကပြ a နာတစ်ခုနဲ့တွေ့တဲ့အခါပြ a နာတစ်ခုကြုံရတယ်။ PHP သည်အရာဝတ်ထုတစ်ခုကိုသော့အသစ်တစ်ခုအဖြစ်ပြောင်းလဲရန်ကြိုးစားသော်လည်းပုံမှန်အားဖြင့်အရာဝတ်ထုကို၎င်း၏အတန်းအစားအမည်နှင့်ပြည်တွင်းထူးခြားသည့်အမှတ်အသား (ဥပမာ, အသီး # 1 ) ဖြင့်ကိုယ်စားပြုသည်။
ထို့ကြောင့်အထက်ပါကုဒ်၏ output သည် -
Array
(
[Fruit#1] => a
[Fruit#2] => b
[Fruit#3] => c
)
ဤအချက်က array_flip () သည် အရာဝတ်ထုတန်ဖိုးများကိုသော့ထဲသို့တိုက်ရိုက် ပြောင်းလဲ. မရပါ, အရာဝတ္ထုများနှင့်နှိုင်းယှဉ်လျှင်သူတို့၏ contents မဟုတ်ဘဲ၎င်းတို့၏ contents idents idents aboutifiers များအပေါ်အခြေခံသည်။
PHP ရှိအရာဝတ်ထုများကိုအဓိကဒေတာအမျိုးအစားများနှင့်တိုက်ရိုက်ကူးယူခြင်းထက်ကူးယူခြင်းထက်ရည်ညွှန်းသည်။ အရာဝတ်ထုနှိုင်းယှဉ်မှုများသည်မှတ်ဉာဏ်ကိုးကားချက်များအပေါ်အခြေခံသည်။ သူတို့၏ဂုဏ်သတ္တိများသို့မဟုတ်တန်ဖိုးများမဟုတ်ပါ။ ဒါကြောင့် Array_flip () က အရာဝတ်ထုတွေကိုခင်းကျင်းဖို့သော့တွေအဖြစ်သုံးဖို့ကြိုးစားတယ်, တကယ်တော့ဒါဟာသူတို့ရဲ့အကြောင်းအရာမဟုတ်ဘဲအရာဝတ်ထုတွေကိုကိုးကားထားတာပါ။
ထို့အပြင်အရာဝတ်ထုများ၏ identamics ecoverifier များဖြစ်ကြောင်းအတည်ပြုပြီးကတည်းက PHP သည်၎င်းတို့အားခိုင်လုံသောသော့များသို့တိုက်ရိုက်မပြောင်းလဲနိုင်ပါ။ ခိုင်လုံသော Array ခလုတ်များသည်ကိန်းဂဏန်းများသို့မဟုတ်ကြိုးများကဲ့သို့သော scarr အမျိုးအစားများဖြစ်ရမည်။
အကယ်. သင်သည်အရာဝတ်ထုတန်ဖိုးများကို Array တစ်ခုတွင် swap လုပ်ရန်လိုအပ်ပါကအောက်ပါဖြေရှင်းနည်းကိုသင်စဉ်းစားနိုင်သည်။
အရာဝတ်ထုတစ်ခုကို string တစ်ခုသို့ပြောင်းပါ ။ အရာဝတ်ထုတစ်ခုကို __tostring () နည်းလမ်းကိုအကောင်အထည်ဖော်ခြင်းဖြင့် string တစ်ခုသို့ပြောင်းပါ။ ၎င်းသည် array_flip () ကို သော့အသစ်များအဖြစ်အသုံးပြုရန်ခွင့်ပြုသည်။
class Fruit {
public $name;
public function __construct($name) {
$this->name = $name;
}
public function __toString() {
return $this->name;
}
}
$array = [
"a" => new Fruit("apple"),
"b" => new Fruit("banana"),
"c" => new Fruit("cherry")
];
$flipped = array_flip($array);
print_r($flipped);
output ကိုဖြစ်လိမ့်မည်:
Array
(
[apple] => a
[banana] => b
[cherry] => c
)
အရာဝတ်ထုတစ်ခု၏ဂုဏ်သတ္တိများကိုသုံးပါ ။ အကယ်. အရာဝတ်ထုတွင်ပစ္စည်းတွင်ပါ 0 င်ပါကဤဂုဏ်သတ္တိများကိုသော့များအဖြစ်အသုံးပြုနိုင်သည်။ အရာဝတ်ထု၏ဂုဏ်သတ္တိများကိုထုတ်ယူခြင်းဖြင့်၎င်းကိုခင်းကျင်းခြင်းဖြင့် array_flip () ကို အသုံးပြုသည်။
$array = [
"a" => new Fruit("apple"),
"b" => new Fruit("banana"),
"c" => new Fruit("cherry")
];
$processedArray = [];
foreach ($array as $key => $fruit) {
$processedArray[$fruit->name] = $key;
}
print_r($processedArray);
output ဟာအတူတူပါပဲ
Array
(
[apple] => a
[banana] => b
[cherry] => c
)
Array_flip () function သည်အရာဝတ်ထုများကိုတန်ဖိုးများအဖြစ်မှန်ကန်စွာမပြုလုပ်ပါ။ အရာဝတ်ထုတန်ဖိုးများကိုသင်ကိုင်တွယ်ရန်လိုအပ်ပါကအရာဝတ်ထုကို string တစ်ခုသို့ပြောင်းရန်သို့မဟုတ်အရာဝတ်ထု၏ဂုဏ်သတ္တိများကိုသုံးရန် __TOSTRINGRE () နည်းလမ်းကိုအသုံးပြုရန်စဉ်းစားနိုင်သည်။