Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar nama kunci kepada nilai kunci dalam tatasusunan bersekutu php

Bagaimana untuk menukar nama kunci kepada nilai kunci dalam tatasusunan bersekutu php

PHPz
PHPzasal
2023-04-24 15:49:28572semak imbas

Dalam PHP, tatasusunan bersekutu ialah jenis data yang sangat biasa. Ia terdiri daripada pasangan nilai kunci, dan setiap kunci adalah unik. Kadangkala, kita perlu memproses data dalam tatasusunan bersekutu mengikut nilai kunci dan bukannya dengan nama kunci. Dalam kes ini, kita boleh menukar nama kunci tatasusunan bersekutu kepada nilai kunci. Artikel ini akan menerangkan cara melaksanakan fungsi ini.

1. Gunakan fungsi array_flip

fungsi terbina dalam php array_flip() untuk menukar kunci dan nilai tatasusunan. Oleh itu, kita boleh mula-mula menggunakan fungsi array_flip() untuk menukar kunci dan nilai tatasusunan asal, dan kemudian menggunakan fungsi tatasusunan biasa untuk memproses tatasusunan. Berikut ialah contoh kod mudah:

$array = array('a'=>'apple', 'b'=>'banana', 'c'=>'cherry');
$array = array_flip($array);//键值交换
print_r($array);//输出结果为:Array ( [apple] => a [banana] => b [cherry] => c )

Dalam kod di atas, kami mula-mula mentakrifkan tatasusunan bersekutu. Kemudian, kami menggunakan array_flip() untuk menukar nama kunci dan nilai kuncinya. Akhir sekali, kami mengeluarkan tatasusunan baharu menggunakan fungsi print_r().

2. Gunakan fungsi array_walk

fungsi terbina dalam php array_walk() untuk menggunakan fungsi panggil balik pada setiap elemen tatasusunan, supaya operasi yang lebih kompleks boleh dilakukan pada tatasusunan. Menggunakan fungsi array_walk(), kita boleh mentakrifkan fungsi tanpa nama yang digunakan pada setiap elemen dan menukarnya kepada nilai kunci.

$array = array('a'=>'apple', 'b'=>'banana', 'c'=>'cherry');
array_walk($array, function(&$value, $key){
    $value = $key;
});
print_r($array);//输出结果为:Array ( [a] => a [b] => b [c] => c )

Dalam kod di atas, kami mula-mula mentakrifkan tatasusunan bersekutu. Kemudian, kami menggunakan fungsi array_walk() untuk menggunakan fungsi tanpa nama yang ditentukan pada setiap elemen dalam tatasusunan. Fungsi tanpa nama menetapkan nilai elemen kepada nama kunci elemen. Akhir sekali, kami mengeluarkan tatasusunan baharu menggunakan fungsi print_r().

3. Gunakan gelung foreach

Gelung foreach dalam php boleh merentasi semua elemen dalam tatasusunan bersekutu. Dalam setiap langkah gelung, kita boleh menggunakan nama kunci untuk mendapatkan nilai elemen. Menggunakan gelung foreach, kita boleh menentukan tatasusunan baharu dan menggunakan kekunci tatasusunan asal sebagai kunci tatasusunan baharu. Berikut ialah contoh kod:

$array = array('a'=>'apple', 'b'=>'banana', 'c'=>'cherry');
$new_array = array();
foreach($array as $key=>$value){
    $new_array[$value] = $key;
}
print_r($new_array);//输出结果为:Array ( [apple] => a [banana] => b [cherry] => c )

Dalam kod di atas, kami mula-mula mentakrifkan tatasusunan bersekutu. Kami kemudian menggunakan gelung foreach untuk lelaran melalui tatasusunan. Dalam setiap langkah gelung, kami menggunakan nama kunci sebagai nilai dan menyimpannya ke dalam tatasusunan baharu. Akhir sekali, kami mengeluarkan tatasusunan baharu menggunakan fungsi print_r().

Ringkasan

Artikel ini memperkenalkan tiga kaedah untuk menukar nama utama tatasusunan bersekutu PHP kepada nilai utama. Kaedah ini termasuk menggunakan fungsi terbina dalam array_flip(), menggunakan fungsi array_walk() dan menggunakan gelung foreach. Berdasarkan keperluan sebenar anda, adalah sangat penting untuk memilih kaedah yang sesuai untuk menukar nama utama tatasusunan bersekutu.

Atas ialah kandungan terperinci Bagaimana untuk menukar nama kunci kepada nilai kunci dalam tatasusunan bersekutu 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