Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk menukar nilai kunci dalam tatasusunan php
PHP ialah bahasa pengaturcaraan berorientasikan objek yang menyediakan keupayaan pemprosesan tatasusunan yang berkuasa. Dalam pembangunan sebenar, kita sering menghadapi situasi di mana kita perlu melaraskan tatasusunan Salah satu keperluan biasa ialah menukar kunci tatasusunan. Artikel ini akan memperkenalkan cara menukar kunci dalam tatasusunan PHP dan menerangkan secara terperinci kepada pembaca isu yang perlu diberi perhatian dalam proses tersebut.
1. Gunakan fungsi array_combine()
Fungsi array_combine() ialah fungsi dalam PHP yang digunakan untuk menggabungkan dua tatasusunan dan menjana tatasusunan baharu. Penggunaannya adalah seperti berikut:
array_combine(array $keys, array $values): array
Parameter pertama $keys bagi fungsi ini ialah array, yang mewakili nama kunci bagi yang baharu tatasusunan; Parameter kedua $values juga tatasusunan, yang mewakili nilai utama tatasusunan baharu. Bilangan elemen mereka mestilah sama, jika tidak palsu akan dikembalikan.
Susunan elemen dalam tatasusunan $keys dan $values mesti sepadan satu dengan satu. Sebagai contoh, elemen pertama tatasusunan $keys sepadan dengan elemen pertama tatasusunan $nilai.
Berikut ialah contoh yang menukar tatasusunan $nama dengan nombor sebagai subskrip kepada tatasusunan $new_name dengan rentetan sebagai subskrip:
$name = array('0' => 'Alice', '1' => 'Bob', '2' => 'Carol'); $new_name = array_combine(array('a', 'b', 'c'), $name); print_r($new_name);
Hasil output ialah:
Array ( [a] => Alice [b] => Bob [c] => Carol )
Dalam contoh ini, subskrip angka dalam tatasusunan $name ditukar kepada subskrip rentetan, manakala nilai dalam tatasusunan kekal tidak berubah. Ini kerana kami menggunakan fungsi array_combine() dan memberikannya nama kunci baharu.
2. Gunakan fungsi array_flip()
Fungsi array_flip() ialah fungsi dalam PHP yang digunakan untuk menukar kunci dan nilai dalam tatasusunan. Penggunaannya adalah seperti berikut:
array_flip(array $trans) : array
Parameter $trans bagi fungsi ini ialah tatasusunan, yang mewakili tatasusunan yang ditukar. Ia akan mengembalikan tatasusunan baharu, di mana kunci dalam tatasusunan asal menjadi nilai dalam tatasusunan baharu, dan nilai dalam tatasusunan asal menjadi kunci dalam tatasusunan baharu.
Berikut ialah contoh yang menukar tatasusunan $age dengan nombor sebagai subskrip kepada tatasusunan $info dengan nilai umur sebagai subskrip:
$age = array('Alice' => 25, 'Bob' => 35, 'Carol' => 30); $info = array_flip($age); print_r($info);
Hasil output ialah:
Array ( [25] => Alice [35] => Bob [30] => Carol )
Dalam contoh ini, subskrip rentetan dalam tatasusunan $age ditukar kepada subskrip angka, manakala nilai dalam tatasusunan kekal tidak berubah. Ini kerana kami menggunakan fungsi array_flip() dan memberikannya array $age.
Perlu diambil perhatian bahawa jika terdapat nilai pendua dalam tatasusunan asal, kekunci yang ditukar akan menimpa kekunci sebelumnya. Oleh itu, apabila menggunakan fungsi array_flip(), anda perlu memastikan bahawa nilai dalam tatasusunan asal adalah unik.
3. Gunakan fungsi array_map()
Fungsi array_map() ialah fungsi dalam PHP yang digunakan untuk menggunakan fungsi panggil balik pada setiap elemen tatasusunan. Penggunaannya adalah seperti berikut:
array_map(callable $callback, array ...$arrays) : array
Parameter pertama bagi fungsi ini $callback ialah fungsi panggil balik, yang akan digunakan kepada tatasusunan pada setiap elemen dalam. Tatasusunan selepas parameter kedua ialah tatasusunan yang perlu dikendalikan. Bilangan elemen mereka mungkin tidak sama. Fungsi ini akan menjana tatasusunan baharu, setiap elemen adalah nilai pulangan bagi fungsi $callback.
Berikut ialah contoh yang menukar tatasusunan $price dengan nombor sebagai subskrip kepada tatasusunan $actual_price dengan nombor titik terapung sebagai subskrip:
$price = array('Alice' => 10, 'Bob' => 15.5, 'Carol' => 20); $actual_price = array_map(function($p) { return round($p * 0.8, 2); }, $price); print_r($actual_price);
Hasil output ialah:
Array ( [Alice] => 8.00 [Bob] => 12.40 [Carol] => 16.00 )
Dalam contoh ini, kami menggunakan fungsi array_map() dan memberikannya fungsi panggil balik. Fungsi ini mendarabkan setiap nilai harga sebanyak 0.8 dan membundarkan kepada dua tempat perpuluhan, kemudian mengembalikan nilai harga baharu. Akhir sekali, kita mendapat tatasusunan baharu $actual_price, di mana subskrip menjadi nama orang itu, dan nilai dalam tatasusunan ialah harga sebenar yang dikira.
Perlu diambil perhatian bahawa fungsi $callback mesti mengembalikan nilai, jika tidak, amaran akan dijana.
4. Gunakan gelung foreach
Selain fungsi di atas, anda juga boleh menukar kekunci tatasusunan secara manual dengan menggunakan gelung foreach. Berikut ialah contoh yang menukar tatasusunan $id dengan subskrip angka kepada tatasusunan $name_id dengan subskrip rentetan:
$id = array(1001, 1002, 1003); $name = array('Alice', 'Bob', 'Carol'); $name_id = array(); foreach($id as $i => $val) { $name_id[$name[$i]] = $val; } print_r($name_id);
Outputnya ialah:
Array ( [Alice] => 1001 [Bob] => 1002 [Carol] => 1003 )
Dalam contoh ini , kami menggunakan gelung foreach dan menukar tatasusunan dalam gelung. Secara khusus, kami mengulangi setiap elemen dalam tatasusunan $id dan menggunakan subskrip elemen untuk mendapatkan nilai yang sepadan daripada tatasusunan $name. Kami kemudian menambah pasangan nilai kunci baharu ini pada tatasusunan $name_id.
Perlu diambil perhatian bahawa apabila menggunakan gelung foreach, jika anda ingin mengubah suai elemen dalam tatasusunan, anda perlu menggunakan rujukan kepada tatasusunan.
5. Ringkasan
Artikel ini memperkenalkan cara menukar kunci dalam tatasusunan PHP, termasuk kaedah menggunakan fungsi array_combine(), fungsi array_flip(), fungsi array_map() dan gelung foreach. Setiap kaedah ini mempunyai ciri yang berbeza, dan kaedah yang berbeza boleh dipilih mengikut keperluan sebenar.
Apabila menggunakan kaedah ini, adalah penting untuk ambil perhatian bahawa nama kunci baharu mestilah unik dan kaedah yang berbeza mungkin menghasilkan hasil yang berbeza. Oleh itu, anda perlu berfikir dengan teliti dan memilih kaedah yang sesuai apabila menukar kekunci tatasusunan.
Atas ialah kandungan terperinci Bagaimana untuk menukar nilai kunci dalam tatasusunan php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!