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

Bagaimana untuk menukar kunci tatasusunan dalam php

PHPz
PHPzasal
2023-04-23 09:13:48528semak imbas

Array ialah salah satu jenis data yang paling berguna dan biasa digunakan dalam PHP. Tatasusunan memainkan peranan penting apabila berurusan dengan data berbilang dimensi dan apabila menyimpan dan mengakses data dalam ingatan. Dalam sesetengah kes, kita perlu menukar kekunci tatasusunan untuk akses yang lebih mudah kepada nilai tertentu, yang merupakan keperluan biasa dalam operasi tatasusunan.

Artikel ini akan menerangkan cara menukar kekunci tatasusunan menggunakan beberapa fungsi terbina dalam dalam PHP. Kami akan meneroka tiga kes penggunaan biasa:

  1. Menukar nama kunci tatasusunan

Dalam PHP, kita boleh menggunakan fungsi array_keys untuk menjana nama kunci bagi senarai tatasusunan, dan kemudian gunakan fungsi array_combine untuk memasangkan senarai kunci baharu dengan nilai tatasusunan asal, sekali gus menukar kekunci tatasusunan.

Berikut ialah contoh:

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

$newKeys = array(
    '1' =>'apple',
    '2' => 'banana',
    '3' => 'cherry'
);

$newArray = array_combine($newKeys, $oldArray);

print_r($newArray);

Output:

Array
(
    [apple] => apple
    [banana] => banana
    [cherry] => cherry
)
  1. Tukar nilai kunci tatasusunan

Kita boleh Gunakan fungsi array_map, digabungkan dengan fungsi tanpa nama, untuk menukar nilai kunci tatasusunan. Fungsi tanpa nama menghantar setiap nilai sebagai parameter dan mengembalikan nilai baharu, kemudian menyimpan pasangan nilai kunci baharu ini dalam tatasusunan baharu.

Berikut ialah contoh:

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

$newArray = array_map(function($value) {
    return strtoupper($value);
}, $oldArray);

print_r($newArray);

Output:

Array
(
    [a] => APPLE
    [b] => BANANA
    [c] => CHERRY
)

Dalam contoh di atas, kami menggunakan fungsi array_map untuk menghantar setiap nilai kepada Anonymous fungsi yang menukar rentetan kepada huruf besar dan menyimpan pasangan nilai kunci baharu dalam tatasusunan baharu.

  1. Tukar nama kunci tatasusunan berbilang dimensi

Jika anda mempunyai tatasusunan berbilang dimensi, anda boleh menggunakan rekursi untuk menukar nama kunci. Kita boleh menukar tatasusunan berbilang dimensi dengan mudah dengan mengulangi setiap nilai dan menukar nama kuncinya.

Berikut ialah contoh:

$array = array(
    "a" => array(
        "b" => array(
            "c" => "apple"
        )
    ),
    "d" => array(
        "e" => array(
            "f" => "banana"
        )
    ),
    "g" => array(
        "h" => "cherry"
    )
);

function changeKeys(array $array, array $newKeys): array
{
    $newArray = array();
    foreach ($array as $key => $value) {
        if (array_key_exists($key, $newKeys)) {
            $key = $newKeys[$key];
        }
        if (is_array($value)) {
            $value = changeKeys($value, $newKeys);
        }
        $newArray[$key] = $value;
    }
    return $newArray;
}

$newKeys = array(
    'a' => 'apple',
    'd' => 'banana',
    'g' => 'cherry'
);

$newArray = changeKeys($array, $newKeys);

print_r($newArray);

Output:

Array
(
    [apple] => Array
        (
            [b] => Array
                (
                    [c] => apple
                )

        )

    [banana] => Array
        (
            [e] => Array
                (
                    [f] => banana
                )

        )

    [cherry] => Array
        (
            [h] => cherry
        )

)

Dalam contoh di atas, kami mengulangi tatasusunan secara rekursif dan mencari item yang sepadan untuk yang baharu nama kunci, Kemudian gunakan ini sebagai nama kunci baharu. Jika tatasusunan bersarang ditemui, pengubahsuaian diteruskan semasa proses rekursif.

Ringkasan

Dalam PHP, menukar nama kunci dan nilai kunci tatasusunan ialah operasi yang sangat berguna, terutamanya apabila berurusan dengan data berbilang dimensi. Artikel ini memperkenalkan tiga kaedah biasa: menggunakan fungsi array_combine untuk menukar nama kunci tatasusunan, menggunakan fungsi array_map untuk menukar nilai kunci tatasusunan dan menukar nama kunci tatasusunan berbilang dimensi secara rekursif. Semoga artikel ini bermanfaat kepada anda.

Atas ialah kandungan terperinci Bagaimana untuk menukar 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