Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menukar nilai kunci tatasusunan dalam php

Bagaimana untuk menukar nilai kunci tatasusunan dalam php

PHPz
PHPzasal
2023-04-27 09:11:22936semak imbas

Dalam pembangunan PHP, selalunya diperlukan untuk beroperasi pada tatasusunan. Nilai kunci (juga dipanggil indeks) dalam tatasusunan adalah sangat penting. Kadangkala, kita perlu menukar beberapa nilai utama dalam tatasusunan untuk memenuhi keperluan perniagaan. Seterusnya, saya akan memperkenalkan beberapa kaedah untuk menukar nilai utama tatasusunan PHP.

1. Gunakan fungsi array_combine()

fungsi array_combine() boleh menggabungkan dua tatasusunan menjadi satu tatasusunan Nilai utama tatasusunan pertama akan digunakan sebagai indeks tatasusunan baharu, dan nilai kunci tatasusunan kedua akan digunakan sebagai indeks tatasusunan baharu Nilai tatasusunan akan digunakan sebagai elemen tatasusunan baharu. Kita boleh menggunakan ini untuk menukar nilai utama tatasusunan.

Andaikan kita mempunyai tatasusunan berikut:

$old_array = array('a'=>'apple', 'b'=>'banana', 'c'=>'cherry');

Sekarang kita ingin menukar nilai kunci a kepada aa, kita boleh menggunakan kod berikut:

$new_key = array('a' => 'aa');
$new_array = array_combine(array_replace(array_keys($old_array), $new_key), $old_array);

Di sini kita tentukan tatasusunan baru $new_key, masukkan nilai kunci a untuk ditukar dan nilai kunci baru aa. Seterusnya, kami menggunakan fungsi array_replace() untuk mengekstrak nilai kunci a untuk ditukar, dan kemudian hantar ke dalam fungsi array_combine() dan akhirnya mengembalikan tatasusunan baharu $new_array.

2. Gunakan fungsi array_map()

Fungsi array_map() boleh menghantar setiap elemen dalam tatasusunan kepada fungsi panggil balik yang ditentukan untuk memproses dan mengembalikan tatasusunan baharu. Kita boleh menentukan fungsi panggil balik mudah untuk menukar nilai kunci tatasusunan.

Andaikan kita mempunyai tatasusunan berikut:

$old_array = array('a'=>'apple', 'b'=>'banana', 'c'=>'cherry');

Sekarang kita ingin menukar nilai kunci b kepada bb, kita boleh menggunakan kod berikut:

$new_array = array_map(function($key, $value) use ($old_array){
    if($key == 'b'){
        return array('bb' => $value);
    } else {
        return array($key => $value);
    }
}, array_keys($old_array), $old_array);
$new_array = array_merge(...$new_array);

Di sini, kita gunakan Fungsi tanpa nama berfungsi sebagai fungsi panggil balik untuk fungsi array_map(). Dalam fungsi tanpa nama ini, kita mula-mula menentukan sama ada nilai kunci unsur semasa adalah sama dengan 'b'. Jika sama, tukar nilai kuncinya kepada 'bb' dan kembalikan elemen semasa sebagai tatasusunan.

Akhir sekali, kami menggunakan fungsi array_merge() untuk menggabungkan tatasusunan yang dikembalikan ke dalam tatasusunan baharu.

3. Gunakan fungsi array_walk()

Fungsi array_walk() boleh beroperasi pada setiap elemen dalam tatasusunan dan mengembalikan tatasusunan baharu. Dengan mengatasi fungsi ini, kita boleh menukar nilai utama elemen tatasusunan.

Begitu juga, kami menganggap bahawa kami mempunyai tatasusunan berikut:

$old_array = array('a'=>'apple', 'b'=>'banana', 'c'=>'cherry');

Sekarang kami ingin menukar nilai kunci c kepada cc, kami boleh menggunakan kod berikut:

$new_array = array();
array_walk($old_array, function($value, $key) use ($old_array, &$new_array){
    if($key == 'c'){
        $new_array['cc'] = $value;
    } else {
        $new_array[$key] = $value;
    }
});

Dalam contoh ini, Kami mentakrifkan tatasusunan kosong $new_array untuk menyimpan tatasusunan yang diubah. Melalui fungsi array_walk(), kami merentasi setiap elemen dalam tatasusunan asal $old_array.

Dalam fungsi panggil balik, kami mula-mula menentukan sama ada nilai kunci elemen semasa adalah sama dengan 'c'. Jika ia sama, tukar nilai kuncinya kepada 'cc' dan tambahkannya pada tatasusunan baharu $new_array. Jika tidak, elemen semasa ditambah terus ke tatasusunan baharu $new_array.

Akhir sekali, kami mendapat tatasusunan baharu $new_array, yang nilai kuncinya c telah ditukar kepada cc.

Ringkasan

Di atas ialah tiga cara untuk menukar nilai kunci tatasusunan PHP. Dalam pembangunan sebenar, kita boleh memilih kaedah yang paling sesuai dengan kita mengikut keperluan kita. Sama ada anda menggunakan fungsi array_combine(), array_map() atau array_walk(), anda boleh menukar nilai kunci tatasusunan dengan mudah.

Atas ialah kandungan terperinci Bagaimana untuk menukar nilai kunci tatasusunan dalam php. 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