Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menukar tatasusunan dua dimensi nama kunci dalam PHP

Bagaimana untuk menukar tatasusunan dua dimensi nama kunci dalam PHP

PHPz
PHPzasal
2023-04-23 10:10:34593semak imbas

Dalam pengaturcaraan PHP, kami sering menggunakan tatasusunan, dan terdapat banyak operasi pada tatasusunan. Salah satu operasi yang lebih menarik ialah transposisi nama kunci dalam tatasusunan dua dimensi.

Apa yang dipanggil tatasusunan dua dimensi bermaksud setiap elemen dalam tatasusunan ialah tatasusunan. Transposisi nama kunci merujuk kepada menukar nama kunci setiap elemen dalam tatasusunan dua dimensi kepada subskrip tatasusunannya, dan pada masa yang sama mengalihkan tatasusunan yang sepadan dengan setiap elemen dalam tatasusunan dua dimensi.

Artikel ini akan menerangkan cara menggunakan PHP untuk melaksanakan operasi transposisi nama kunci untuk tatasusunan dua dimensi.

1 Cipta tatasusunan dua dimensi

Sebelum mula menerangkan, anda perlu mencipta tatasusunan dua dimensi terlebih dahulu. Kita boleh menggunakan kod berikut:

$originArr = array(
    'fruit1' => array('name' => 'apple', 'color' => 'red'),
    'fruit2' => array('name' => 'banana', 'color' => 'yellow'),
    'fruit3' => array('name' => 'orange', 'color' => 'orange')
);

Dalam tatasusunan dua dimensi ini, setiap elemen ialah tatasusunan bersekutu, yang mengandungi nama dan warna buah. Sekarang, kita perlu menukar nama kunci padanya.

2. Gunakan fungsi array_column untuk menukar tatasusunan dua dimensi

PHP menyediakan fungsi yang dipanggil array_column, yang boleh digunakan untuk mengekstrak lajur tertentu daripada tatasusunan berbilang dimensi. Dalam artikel ini, kita akan menggunakan fungsi ini untuk melaksanakan transposisi nama kunci.

Pertama, kita perlu mengekstrak semua nama kunci dalam tatasusunan dua dimensi dan menukarnya kepada tatasusunan satu dimensi. Gunakan fungsi array_keys untuk mengekstrak semua nama kunci, dan gunakan fungsi array_values ​​untuk mengekstrak semua nilai. Kita hanya perlu menghantar tatasusunan yang dikembalikan oleh fungsi array_keys sebagai parameter kedua kepada fungsi array_column.

Kod ini dilaksanakan seperti berikut:

$keys = array_keys($originArr);
$newArr = array_column($originArr, null, $keys);

Dalam langkah ini, kami menggunakan nama kunci setiap elemen dalam tatasusunan dua dimensi sebagai subskrip tatasusunan baharu. Tatasusunan yang sepadan dengan setiap elemen dalam tatasusunan asal menjadi nilai tatasusunan baharu.

3 Ubah nama kunci dalam sub-tatasusunan

Dalam tatasusunan baharu semasa, walaupun nama kunci telah ditukar, setiap nilai dalam tatasusunan baharu juga merupakan tatasusunan, dan Tatasusunan. nama kunci dalam setiap tatasusunan bukanlah subskrip yang kami perlukan. Oleh itu, kita juga perlu menukar nama kunci setiap sub-tatasusunan dalam tatasusunan baharu.

Kita boleh menggunakan fungsi array_map untuk menggunakan fungsi panggil balik pada setiap sub-array dalam array newArr untuk menukar nama kunci. Kod tersebut dilaksanakan seperti berikut:

$newArr = array_map(function($arr){ 
    return array_combine(array_keys($arr), $arr);
}, $newArr);

Di sini, kita mula-mula menggunakan fungsi array_keys untuk mengekstrak nama kunci semasa tatasusunan, dan kemudian menggabungkan nama kunci yang diekstrak dan nilai semasa untuk membentuk persatuan baharu melalui tatasusunan fungsi array_combine. Dengan cara ini, kami telah berjaya menukar nama kunci setiap sub-tatasusunan dalam tatasusunan baharu.

4. Lengkapkan pelaksanaan kod

Dengan mengikut langkah di atas, untuk tatasusunan dua dimensi yang diberikan, kami boleh melaksanakan operasi transposisi nama utama. Berikut ialah pelaksanaan kod lengkap:

$originArr = array(
    'fruit1' => array('name' => 'apple', 'color' => 'red'),
    'fruit2' => array('name' => 'banana', 'color' => 'yellow'),
    'fruit3' => array('name' => 'orange', 'color' => 'orange')
);

$keys = array_keys($originArr);
$newArr = array_column($originArr, null, $keys);

$newArr = array_map(function($arr){ 
    return array_combine(array_keys($arr), $arr);
}, $newArr);

print_r($newArr);

Hasil output adalah seperti berikut:

Array
(
    [name] => Array
        (
            [fruit1] => apple
            [fruit2] => banana
            [fruit3] => orange
        )

    [color] => Array
        (
            [fruit1] => red
            [fruit2] => yellow
            [fruit3] => orange
        )

)

Seperti yang anda lihat, kami telah berjaya menukar nama kunci setiap elemen dalam tatasusunan dua dimensi Untuk subskrip dalam tatasusunan baharu, setiap kunci dalam subarray juga ditukarkan kepada subskrip baharu.

Ringkasan

Dalam artikel ini, kami menerangkan operasi transposisi nama utama untuk tatasusunan dua dimensi dalam PHP dan memperkenalkan cara menggunakan fungsi lajur_tatasusunan dan peta_tatasusunan untuk melaksanakan operasi ini. Apabila kita perlu mengendalikan tatasusunan berbilang dimensi, operasi ini boleh menjimatkan jumlah kod dan meningkatkan kecekapan pembangunan.

Atas ialah kandungan terperinci Bagaimana untuk menukar tatasusunan dua dimensi nama kunci 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