Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Memasukkan ke dalam Tatasusunan Bersekutu dengan array_splice()?

Bagaimana untuk Memasukkan ke dalam Tatasusunan Bersekutu dengan array_splice()?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-18 13:27:30217semak imbas

How to Insert into Associative Arrays with array_splice()?

Memasukkan ke dalam Tatasusunan Bersekutu dengan array_splice()

Dalam PHP, bekerja dengan tatasusunan bersekutu boleh menjadi rumit apabila memasukkan elemen baharu sambil mengekalkan susunan kunci sedia ada. Walaupun array_splice() ialah fungsi yang berkuasa untuk memanipulasi tatasusunan berangka, ia gagal apabila berurusan dengan yang bersekutu.

Masalah:

Andaikan kita mempunyai tatasusunan bersekutu yang mewakili atribut buah:

<code class="php">$fruit = [
    'color' => 'red',
    'taste' => 'sweet',
    'season' => 'summer'
];</code>

Kami ingin memasukkan atribut baharu, 'tekstur', dengan nilai 'bergelombang', di belakang kekunci 'rasa'. Output yang kami maksudkan ialah:

<code class="php">$fruit = [
    'color' => 'red',
    'taste' => 'sweet',
    'texture' => 'bumpy',
    'season' => 'summer'
];</code>

Penyelesaian:

array_splice() tidak boleh digunakan terus untuk tugas ini. Sebaliknya, pendekatan manual diperlukan:

<code class="php">$offset = 2; // Insert at offset 2 (behind 'taste')
$newFruit = array_slice($fruit, 0, $offset, true) +
            ['texture' => 'bumpy'] +
            array_slice($fruit, $offset, NULL, true);

print_r($newFruit);</code>

Proses ini:

  1. Menggunakan array_slice() untuk mencipta tatasusunan baharu yang mengandungi dua elemen pertama $fruit: ['color ' => 'merah', 'rasa' => 'manis'].
  2. Menambah atribut baharu: ['texture' => 'bergelombang'].
  3. Menggabungkan baki elemen $fruit menggunakan array_slice().

Pendekatan ini mengekalkan susunan kunci sedia ada sambil memperkenalkan atribut baharu dalam kedudukan yang diingini.

Atas ialah kandungan terperinci Bagaimana untuk Memasukkan ke dalam Tatasusunan Bersekutu dengan array_splice()?. 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