Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Menggabungkan Tatasusunan Bersekutu Berkunci Secara Numerik dalam PHP Semasa Mengekalkan Kekunci Asal?

Bagaimanakah Saya Boleh Menggabungkan Tatasusunan Bersekutu Berkunci Secara Numerik dalam PHP Semasa Mengekalkan Kekunci Asal?

Barbara Streisand
Barbara Streisandasal
2024-12-16 17:05:22699semak imbas

How Can I Merge Numerically-Keyed Associative Arrays in PHP While Preserving Original Keys?

Menggabungkan Tatasusunan Bersekutu dengan Kekunci Berangka Terpelihara

Apabila menggabungkan dua tatasusunan bersekutu berkunci berangka, ia selalunya dikehendaki mengekalkan kekunci asal dalam tatasusunan gabungan sambil mengelakkan pendua. Berikut ialah penyelesaian mudah:

$array1 = [
    '11' => '11',
    '22' => '22',
    '33' => '33',
    '44' => '44',
];

$array2 = [
    '44' => '44',
    '55' => '55',
    '66' => '66',
    '77' => '77',
];

$output = $array1 + $array2;

Dalam PHP, operator untuk tatasusunan menggabungkan dua tatasusunan, dan apabila dua kekunci dengan nilai berangka yang sama hadir, nilai daripada tatasusunan sebelah kanan akan menimpa nilai daripada tatasusunan sebelah kiri. Walau bagaimanapun, memandangkan kekunci dalam kes ini adalah integer, PHP menganggapnya sebagai nombor dan menomborkan semula kekunci.

Untuk mencipta semula kekunci berangka asal, gunakan array_combine:

$output = array_combine($output, $output);

Ini mencipta yang baharu tatasusunan dengan kekunci asal dipulihkan.

Oleh itu, tatasusunan yang digabungkan dengan angka yang dipelihara kekunci kelihatan seperti ini:

[
    '11' => '11',
    '22' => '22',
    '33' => '33',
    '44' => '44',
    '55' => '55',
    '66' => '66',
    '77' => '77',
]

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Tatasusunan Bersekutu Berkunci Secara Numerik dalam PHP Semasa Mengekalkan Kekunci Asal?. 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