Rumah  >  Artikel  >  pembangunan bahagian belakang  >  php mengubah suai nama kunci tatasusunan

php mengubah suai nama kunci tatasusunan

PHPz
PHPzasal
2023-05-07 11:54:07643semak imbas

Dalam pembangunan PHP, selalunya diperlukan untuk beroperasi pada tatasusunan, dan mengubah suai nama utama tatasusunan ialah salah satu operasi biasa. Artikel ini akan memperkenalkan cara menggunakan bahasa PHP untuk mengubah suai nama kunci tatasusunan.

1. Apakah nama kunci tatasusunan? Dalam PHP, kunci tatasusunan merujuk kepada pengecam unik untuk setiap elemen dalam tatasusunan. Tatasusunan dalam PHP boleh menggunakan integer dan rentetan sebagai kunci. Sudah tentu, selepas PHP 5.4, anda juga boleh menggunakan pemalar sebagai nama utama.

Sebagai contoh, kita mula-mula mentakrifkan tatasusunan ringkas:

$arr = array('name' => '张三', 'age' => 20, 'gender' => '男');

Dalam kod di atas, 'nama', 'umur' dan 'jantina' ialah nama utama unsur-unsur dalam tatasusunan $ arr.

2. Gunakan fungsi PHP array_combine() untuk mengubah suai nama kunci tatasusunan

Sekarang, kita perlu menukar nama kunci 'umur' dalam tatasusunan $arr kepada 'tahun'. Dalam PHP, anda boleh menggunakan fungsi array_combine() untuk mencipta tatasusunan baharu, di mana kunci tatasusunan baharu berulang kali dipetakan daripada nilai tatasusunan asal.

Secara khusus, kita boleh menggunakan fungsi array_combine() untuk menukar nama dan nilai kunci dalam tatasusunan asal, dan kemudian gunakan fungsi ini sekali lagi untuk melakukan pemetaan berulang, di mana indeks 'umur' ditukar kepada 'years' :

$arr = array('name' => '张三', 'age' => 20, 'gender' => '男');

// 将原数组中的键名和值互换
$arr_flip = array_flip($arr);

// 重复映射生成新数组
$new_keys = array_combine(array('name', 'years', 'gender'), $arr_flip);

// 将新数组中的键名和值再次互换
$new_arr = array_flip($new_keys);

print_r($new_arr);

Dalam kod di atas, kami mula-mula menggunakan fungsi PHP array_flip() untuk menukar nama kunci dan nilai tatasusunan asal, menukar nama kunci kepada nilai nilai , dan menukar nilai kepada Nama kunci nama kunci ini. Kemudian, kami memetakan nama kunci baharu dan ulangan kepada nilai tatasusunan asal, menjana tatasusunan baharu $new_keys. Akhir sekali, kami menggunakan fungsi array_flip() sekali lagi untuk menukar nama kunci dan nilai tatasusunan baharu sekali lagi, dan akhirnya mendapatkan tatasusunan baharu $new_arr.

3. Gunakan fungsi PHP array_reduce() untuk mengubah suai nama kunci tatasusunan

Selain menggunakan fungsi array_combine(), anda juga boleh menggunakan fungsi PHP array_reduce() untuk ubah suai nama kunci tatasusunan. Fungsi array_reduce() adalah untuk mengurangkan semua elemen dalam tatasusunan melalui fungsi yang ditentukan pengguna.

Operasi khusus adalah seperti berikut:

$arr = array('name' => '张三', 'age' => 20, 'gender' => '男');

$mapping = array('age' => 'years');

$func = function ($carry, $item) use ($mapping) {
    $key = $item[0];
    $value = $item[1];

    if (isset($mapping[$key])) {
        $key = $mapping[$key];
    }

    $carry[$key] = $value;
    return $carry;
};

$new_arr = array_reduce(array_map(null, array_keys($arr), $arr), $func, array());

print_r($new_arr);

Dalam kod di atas, kami mula-mula membungkus tatasusunan asal, iaitu apa yang array_map(null, array_keys($arr), $arr) lakukan . Kemudian, kami menggunakan fungsi tersuai $func dalam fungsi array_reduce(), yang menyemak setiap elemen tatasusunan asal, mengubah suai nama kunci jika wujud pemetaan dan mencipta kunci baharu dalam nama dan nilai tatasusunan semula. Akhirnya, kami mendapat tatasusunan baharu $new_arr.

Kesimpulan

Artikel ini memperkenalkan cara menggunakan bahasa PHP untuk mengubah suai nama kunci tatasusunan. Dalam pembangunan sebenar, operasi tatasusunan yang betul boleh meningkatkan kecekapan operasi dan kebolehselenggaraan program Ini adalah salah satu sebab mengapa kami terus mempelajari dan menguasai teknologi baharu.

Atas ialah kandungan terperinci php mengubah suai nama kunci tatasusunan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn