Dalam PHP, kita selalunya perlu menukar indeks tatasusunan, seperti menyusun semula indeks atau menukar nilai indeks elemen tertentu. Artikel ini akan memperkenalkan beberapa fungsi dan teknik PHP yang biasa digunakan untuk membantu anda mengubah suai indeks tatasusunan dengan mudah.
1. Gunakan fungsi array_values() untuk menyusun semula indeks
Jika tatasusunan anda mengandungi indeks tidak berterusan dan anda ingin menyusun semula indeks ini, anda boleh menggunakan fungsi array_values(). Fungsi ini boleh mengembalikan tatasusunan baharu di mana elemen kekal tidak berubah tetapi indeksnya disusun semula mengikut tertib.
Sebagai contoh, katakan anda mempunyai tatasusunan berikut:
$fruits = array(2 => 'apple', 4 => 'banana', 6 => 'orange');
Indeks tatasusunan ini tidak berturut-turut. Jika anda mencetak tatasusunan menggunakan fungsi print_r(), anda akan melihat output berikut:
Array ( [2] => apple [4] => banana [6] => orange )
Untuk menyusun semula indeks, hantar tatasusunan kepada fungsi array_values() seperti berikut:
$fruits = array_values($fruits);
Kini indeks tatasusunan telah disusun semula seperti berikut:
Array ( [0] => apple [1] => banana [2] => orange )
Perhatikan bahawa fungsi ini mengembalikan tatasusunan baharu tanpa mengubah suai tatasusunan asal. Oleh itu, anda perlu menetapkan tatasusunan yang dikembalikan kepada tatasusunan asal untuk mencapai perubahan indeks.
2 Gunakan fungsi unset() untuk memadamkan elemen dan tetapkan semula dengan kunci baharu
Cara lain ialah menggunakan fungsi unset() untuk memadamkan elemen dalam tatasusunan asal dan gunakan yang baharu Penugasan semula kunci. Sebagai contoh, katakan anda mempunyai tatasusunan berikut:
$colors = array('red', 'green', 'blue');
Sekarang, katakan anda ingin mengalih keluar elemen 'hijau' dan menggunakan 'ungu' sebagai kunci baharunya. Anda boleh menggunakan fungsi unset() untuk mengalih keluar elemen dan menetapkannya semula dengan elemen tatasusunan baharu:
unset($colors[1]); // 删除'green'元素 $colors['purple'] = 'blue'; // 使用'purple'作为键重新分配'blue'元素
Sekarang, tatasusunan kelihatan seperti ini:
Array ( [0] => red [purple] => blue )
Sila ambil perhatian, Menggunakan kaedah ini, anda perlu berhati-hati untuk mengelakkan konflik dengan kunci baharu. Jika kunci baharu bercanggah dengan kunci sedia ada, ia akan menimpa nilai kunci itu.
3. Gunakan fungsi array_combine() untuk menggabungkan dua tatasusunan menjadi tatasusunan baharu
Kadangkala, anda mungkin perlu menggabungkan dua tatasusunan menjadi tatasusunan baharu dan menggunakan kekunci salah satu tatasusunan sebagai kunci tatasusunan baharu. Sebagai contoh, katakan anda mempunyai dua tatasusunan berikut:
$keys = array('name', 'email', 'phone'); $values = array('John', 'john@example.com', '123-456-7890');
Sekarang, katakan anda ingin menggunakan elemen dalam tatasusunan $keys sebagai kunci untuk tatasusunan baharu dan unsur-unsur dalam tatasusunan $nilai sebagai nilai dalam tatasusunan baharu. Anda boleh menggabungkan dua tatasusunan ini menjadi tatasusunan baharu menggunakan fungsi array_combine():
$contact = array_combine($keys, $values);
Kini, tatasusunan $contact kelihatan seperti ini:
Array ( [name] => John [email] => john@example.com [phone] => 123-456-7890 )
Perhatikan bahawa kedua-duanya Kedua-duanya tatasusunan mesti mempunyai bilangan elemen yang sama. Jika kedua-dua tatasusunan mempunyai bilangan elemen yang berbeza, amaran akan dicetuskan dan FALSE akan dikembalikan.
4 Gunakan fungsi array_map() untuk memetakan kunci baharu pada setiap elemen
Jika anda ingin memberikan kunci baharu kepada setiap elemen tanpa mengubah suai tatasusunan asal, anda boleh menggunakan fungsi array_map(). Fungsi ini menggunakan fungsi untuk setiap elemen tatasusunan yang ditentukan dan mengembalikan tatasusunan baharu.
Sebagai contoh, katakan anda mempunyai tatasusunan berikut:
$names = array('John', 'Jane', 'Bob');
Sekarang, katakan anda mahu memetakan tatasusunan itu ke dalam tatasusunan baharu menggunakan nombor indeks sebagai kunci. Anda boleh menggunakan fungsi array_map() dan fungsi tanpa nama untuk mencapai ini:
$names = array_map(function ($value, $index) { return array( 'id' => $index, 'name' => $value ); }, $names, array_keys($names));
Sekarang, tatasusunan $names akan kelihatan seperti ini:
Array ( [0] => Array ( [id] => 0 [name] => John ) [1] => Array ( [id] => 1 [name] => Jane ) [2] => Array ( [id] => 2 [name] => Bob ) )
Perhatikan bahawa fungsi itu akan Kembalikan tatasusunan baharu. Tatasusunan asal tidak akan terjejas.
Ringkasan
Dalam PHP, anda boleh menggunakan beberapa kaedah untuk menukar indeks tatasusunan. Sama ada anda menyusun semula indeks atau memberikan kunci baharu kepada setiap elemen, terdapat pelbagai teknik dan fungsi untuk dipilih. Sila pilih kaedah yang sesuai berdasarkan keperluan khusus anda, berhati-hati untuk mengelakkan kemungkinan konflik utama.
Atas ialah kandungan terperinci Bagaimana untuk menukar indeks tatasusunan dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!