Array Merge Recursive Php

4 min read Jun 23, 2024
Array Merge Recursive Php

Menggabungkan Array Secara Rekursif di PHP

Dalam pemrograman PHP, penggabungan array merupakan tugas umum yang sering dijumpai. Ada banyak metode untuk menggabungkan array, namun metode rekursif menawarkan fleksibilitas tinggi, terutama saat menghadapi array multidimensi.

Apa Itu Array Rekursif?

Rekursi adalah teknik pemrograman di mana sebuah fungsi memanggil dirinya sendiri. Dalam konteks array, rekursi digunakan untuk mengakses dan memproses semua elemen array, termasuk elemen di dalam array lain (jika ada).

Mengimplementasikan Fungsi Rekursif untuk Menggabungkan Array

Berikut adalah contoh fungsi rekursif PHP untuk menggabungkan dua array:

function array_merge_recursive($array1, $array2) {
    $merged = $array1;
    foreach ($array2 as $key => $value) {
        if (is_array($value) && isset($merged[$key]) && is_array($merged[$key])) {
            $merged[$key] = array_merge_recursive($merged[$key], $value);
        } else {
            $merged[$key] = $value;
        }
    }
    return $merged;
}

Penjelasan Kode:

  1. Fungsi array_merge_recursive() menerima dua parameter, yaitu $array1 dan $array2, yang merupakan array yang akan digabungkan.
  2. Fungsi tersebut membuat variabel $merged yang merupakan salinan dari $array1.
  3. Fungsi tersebut iterasi melalui setiap elemen dalam $array2 menggunakan foreach.
  4. Untuk setiap elemen dalam $array2, fungsi tersebut memeriksa apakah elemen tersebut merupakan array. Jika ya, dan jika $merged juga memiliki key yang sama dengan elemen tersebut dan juga merupakan array, maka fungsi tersebut memanggil dirinya sendiri (rekursi) untuk menggabungkan elemen tersebut.
  5. Jika elemen tersebut bukan array, atau jika $merged tidak memiliki key yang sama dengan elemen tersebut, maka elemen tersebut langsung ditambahkan ke $merged.
  6. Akhirnya, fungsi tersebut mengembalikan $merged yang berisi gabungan dari $array1 dan $array2.

Contoh Penggunaan

$array1 = array(
    'nama' => 'John Doe',
    'alamat' => 'Jl. ABC No. 123',
    'hobi' => array('Membaca', 'Bermain Game')
);

$array2 = array(
    'umur' => 30,
    'hobi' => array('Menulis')
);

$merged_array = array_merge_recursive($array1, $array2);

print_r($merged_array);

Hasil Output:

Array
(
    [nama] => John Doe
    [alamat] => Jl. ABC No. 123
    [hobi] => Array
        (
            [0] => Membaca
            [1] => Bermain Game
            [2] => Menulis
        )
    [umur] => 30
)

Seperti yang terlihat pada output, fungsi array_merge_recursive() berhasil menggabungkan kedua array, termasuk array nested hobi.

Kesimpulan

Fungsi rekursif memberikan solusi yang efisien untuk menggabungkan array multidimensi. Kode tersebut dapat dimodifikasi sesuai kebutuhan untuk menangani berbagai skenario. Namun, penting untuk memahami bahwa rekursi dapat menjadi kompleks dan berpotensi menyebabkan stack overflow jika digunakan secara berlebihan.

Selalu pertimbangkan efisiensi dan kompleksitas kode sebelum memilih metode penggabungan array.

Latest Posts