Dalam PHP, kadangkala anda perlu menukar kunci dan nilai dalam tatasusunan. Sebagai contoh, tukar tatasusunan dengan nombor sebagai kunci kepada tatasusunan bersekutu dengan nilai sebagai kunci. Orang baru mungkin menganggap ini sukar untuk dilaksanakan, tetapi sebenarnya, PHP menyediakan cara yang sangat mudah untuk mencapai fungsi ini. Dalam artikel ini, kita akan belajar cara menukar kunci tatasusunan dan nilai menggunakan PHP.
Kaedah 1: Gunakan fungsi array_flip
Dalam PHP, anda boleh menggunakan fungsi array_flip untuk menukar kunci dan nilai dalam tatasusunan. Fungsi ini mengambil tatasusunan sebagai input dan mengembalikan tatasusunan baharu dengan nilai asal sebagai kunci dan kunci asal sebagai nilai. Contohnya:
$numbers = array(1, 2, 3, 4, 5); $flipped_numbers = array_flip($numbers); print_r($flipped_numbers); // Output: // Array // ( // [1] => 0 // [2] => 1 // [3] => 2 // [4] => 3 // [5] => 4 // )
Dalam contoh di atas, kami menghantar tatasusunan dengan nombor sebagai kunci kepada fungsi array_flip dan menyimpan hasil yang dikembalikan ke dalam pembolehubah $flipped_numbers. Fungsi ini mengambil nilai tatasusunan asal sebagai kunci tatasusunan baharu, dan kunci tatasusunan asal sebagai nilai tatasusunan baharu. Oleh itu, kunci dalam tatasusunan $flipped_numbers ialah nombor 1 hingga 5, dan nilainya ialah kunci tatasusunan asal.
Sila ambil perhatian bahawa jika terdapat berbilang nilai yang sama dalam tatasusunan asal, ralat akan dilaporkan semasa memanggil fungsi array_flip, kerana nilai yang sama tidak boleh menjadi kunci tatasusunan baharu pada masa yang sama.
Kaedah 2: Gunakan gelung foreach
Selain menggunakan fungsi array_flip, kita juga boleh menggunakan gelung foreach untuk menukar kunci dan nilai tatasusunan. Pendekatan ini memerlukan lelaran ke atas tatasusunan asal dan menggunakan tatasusunan bersekutu baharu untuk memegang keputusan. Dalam setiap gelung, gunakan kekunci tatasusunan asal sebagai nilai tatasusunan baharu, dan nilai tatasusunan asal sebagai kunci tatasusunan baharu. Contohnya:
$numbers = array(1, 2, 3, 4, 5); $flipped_numbers = array(); foreach ($numbers as $key => $value) { $flipped_numbers[$value] = $key; } print_r($flipped_numbers); // Output: // Array // ( // [1] => 0 // [2] => 1 // [3] => 2 // [4] => 3 // [5] => 4 // )
Dalam contoh di atas, kita mula-mula mentakrifkan tatasusunan bersekutu kosong $flipped_numbers. Kami kemudian menggunakan gelung foreach untuk mengulangi tatasusunan asal $numbers. Dalam setiap gelung, kami menyimpan kunci tatasusunan asal (iaitu indeks) ke dalam pembolehubah $nilai dan nilai tatasusunan asal (iaitu nombor) ke dalam pembolehubah $kunci. Kemudian, kami menggunakan $key sebagai kunci tatasusunan baharu $flipped_numbers dan $value sebagai nilai tatasusunan baharu. Jadi, kunci dalam tatasusunan $flipped_numbers ialah nombor 1 hingga 5, dan nilainya ialah kunci tatasusunan asal.
Sila ambil perhatian bahawa apabila menggunakan gelung foreach, anda mesti memastikan bahawa nilai dalam tatasusunan asal adalah unik, jika tidak, kekunci yang sama akan muncul apabila menggunakan fungsi array_flip.
Ringkasan
Dalam artikel ini, kami mempelajari dua cara untuk menukar kunci tatasusunan dan nilai menggunakan PHP. Cara pertama ialah menggunakan fungsi array_flip yang menggunakan nilai tatasusunan asal sebagai kunci tatasusunan baharu dan kunci tatasusunan asal sebagai nilai tatasusunan baharu. Kaedah kedua ialah menggunakan gelung foreach, lelaran ke atas tatasusunan asal dan tukar kekunci dan nilai tatasusunan asal dan simpannya ke tatasusunan bersekutu baharu. Bergantung pada senario penggunaan, anda boleh memilih secara fleksibel antara dua kaedah ini. Perlu diingatkan bahawa jika terdapat nilai pendua dalam tatasusunan asal, anda tidak boleh menggunakan dua kaedah ini untuk menukar kunci dan nilai tatasusunan asal.
Atas ialah kandungan terperinci Bagaimana untuk menukar kunci dan nilai tatasusunan dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!