Memahami Array_Walk untuk Array Multidimensi di PHP
Array_walk adalah fungsi PHP yang memungkinkan Anda untuk menerapkan fungsi callback ke setiap elemen dalam sebuah array. Fungsi ini sangat berguna untuk memanipulasi data di dalam array, seperti mengubah nilai, menambahkan data baru, atau bahkan menghapus elemen tertentu.
Tetapi bagaimana dengan array multidimensi?
array_walk
dirancang untuk bekerja dengan array berdimensi tunggal. Namun, ada beberapa cara untuk menggunakannya dengan array multidimensi.
Berikut ini contoh penggunaan array_walk
pada array multidimensi:
'John Doe',
'age' => 30
],
[
'name' => 'Jane Doe',
'age' => 25
]
];
function addAge($value, $key, $user_data) {
$value['age'] += $user_data['add_age'];
return $value;
}
$add_age = 5;
array_walk_recursive($data, 'addAge', ['add_age' => $add_age]);
print_r($data);
?>
Penjelasan:
-
Deklarasi Array Multidimensi:
- Kita mendeklarasikan sebuah array multidimensi
$data
yang berisi informasi tentang dua orang.
- Kita mendeklarasikan sebuah array multidimensi
-
Fungsi Callback
addAge
:- Fungsi ini menerima tiga parameter:
$value
: Elemen array yang sedang diproses.$key
: Kunci dari elemen array yang sedang diproses.$user_data
: Data tambahan yang dapat diakses dalam fungsi callback.
- Dalam contoh ini,
addAge
menambahkan nilaiadd_age
ke properti 'age' dari setiap elemen array.
- Fungsi ini menerima tiga parameter:
-
array_walk_recursive
:- Fungsi
array_walk_recursive
digunakan untuk menerapkan fungsi callback secara rekursif ke semua elemen array, termasuk elemen dalam array bersarang. $data
: Array multidimensi yang akan diproses.'addAge'
: Nama fungsi callback.['add_age' => $add_age]
: Array assosiatif yang berisi data tambahan yang akan diteruskan ke fungsi callback.
- Fungsi
-
Hasil:
- Setelah menjalankan kode, array
$data
akan dimodifikasi sehingga setiap elemen'age'
akan ditambah dengan$add_age
(5 dalam kasus ini).
- Setelah menjalankan kode, array
Tips:
array_walk_recursive
: Gunakan fungsi ini jika Anda perlu memodifikasi semua elemen di dalam array multidimensi, termasuk elemen bersarang.array_walk
: Gunakan fungsi ini jika Anda hanya ingin memodifikasi elemen di level terluar array multidimensi.- Data Tambahan: Gunakan parameter ketiga
$user_data
untuk meneruskan informasi tambahan ke fungsi callback. - Membuat Modifikasi: Fungsi callback harus mengubah nilai elemen array secara langsung agar perubahan tersimpan.
Penting untuk diingat bahwa array_walk
dan array_walk_recursive
hanya memodifikasi array secara in-place. Artinya, perubahan dilakukan langsung pada array asli.
Dengan memahami konsep array_walk
dan array_walk_recursive
, Anda dapat dengan mudah memanipulasi data dalam array multidimensi dan membuat program PHP Anda lebih efisien.