လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> array_flip () အရာဝတ်ထုတန်ဖိုးများကို array တစ်ခုတွင်တွဲဖက်ရန်အသုံးပြုနိုင်ပါသလား။

array_flip () အရာဝတ်ထုတန်ဖိုးများကို array တစ်ခုတွင်တွဲဖက်ရန်အသုံးပြုနိုင်ပါသလား။

M66 2025-06-03

PHP တွင် array_flip () function ကို array ၏သော့များနှင့်တန်ဖိုးများကိုလဲလှယ်ရန်အသုံးပြုသည်။ ပုံမှန်ခင်းကျင်းတန်ဖိုးများအတွက် array_flip () အလွန်ချောချောမွေ့မွေ့လုပ်ဆောင်သည်။ သို့သော်ဤလုပ်ဆောင်မှုသည်အရာဝတ်ထုများ၏ပြ issue နာများရှိအရာဝတ်ထုများကိုတန်ဖိုးများအဖြစ်တန်ဖိုးများကိုမည်သို့ကိုင်တွယ်သည်နှင့် ပတ်သက်. အသေးစိတ်ဆွေးနွေးမှုများပြုလုပ်နိုင်သည်။

Array_flip () function ကိုအခြေခံအသုံးပြုခြင်း

ပထမ ဦး စွာ 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 များအပေါ်အခြေခံသည်။

အဘယ်ကြောင့်ဤပြ problem နာဖြစ်ပေါ်သနည်း

PHP ရှိအရာဝတ်ထုများကိုအဓိကဒေတာအမျိုးအစားများနှင့်တိုက်ရိုက်ကူးယူခြင်းထက်ကူးယူခြင်းထက်ရည်ညွှန်းသည်။ အရာဝတ်ထုနှိုင်းယှဉ်မှုများသည်မှတ်ဉာဏ်ကိုးကားချက်များအပေါ်အခြေခံသည်။ သူတို့၏ဂုဏ်သတ္တိများသို့မဟုတ်တန်ဖိုးများမဟုတ်ပါ။ ဒါကြောင့် Array_flip () က အရာဝတ်ထုတွေကိုခင်းကျင်းဖို့သော့တွေအဖြစ်သုံးဖို့ကြိုးစားတယ်, တကယ်တော့ဒါဟာသူတို့ရဲ့အကြောင်းအရာမဟုတ်ဘဲအရာဝတ်ထုတွေကိုကိုးကားထားတာပါ။

ထို့အပြင်အရာဝတ်ထုများ၏ identamics ecoverifier များဖြစ်ကြောင်းအတည်ပြုပြီးကတည်းက PHP သည်၎င်းတို့အားခိုင်လုံသောသော့များသို့တိုက်ရိုက်မပြောင်းလဲနိုင်ပါ။ ခိုင်လုံသော Array ခလုတ်များသည်ကိန်းဂဏန်းများသို့မဟုတ်ကြိုးများကဲ့သို့သော scarr အမျိုးအစားများဖြစ်ရမည်။

အဖေြ

အကယ်. သင်သည်အရာဝတ်ထုတန်ဖိုးများကို Array တစ်ခုတွင် swap လုပ်ရန်လိုအပ်ပါကအောက်ပါဖြေရှင်းနည်းကိုသင်စဉ်းစားနိုင်သည်။

  1. အရာဝတ်ထုတစ်ခုကို 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
)
  1. အရာဝတ်ထုတစ်ခု၏ဂုဏ်သတ္တိများကိုသုံးပါ ။ အကယ်. အရာဝတ်ထုတွင်ပစ္စည်းတွင်ပါ 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 () နည်းလမ်းကိုအသုံးပြုရန်စဉ်းစားနိုင်သည်။