Menambahkan array baru pada object arrayreinhart1010.id – 20 October 2021From https://reinhart1010.id/blog/2021/10/20/menambahkan-array-baru-pada-object-array. Scan the QR Code to view the article on your device or web browser. |
|
Content may subject to copyright. Visit the original website to view copyright and licensing information about this content. QR Code is a registered trademark of DENSO WAVE, Inc. in Japan and other countries. Generated on 2025-05-24 09:59:29.
Artikel ini merupakan jawaban saya terhadap salah satu pertanyaan pada situs Kotakode.com, sebuah forum dan komunitas para developer di Indonesia. Lihat pertanyaan asli
Pertanyaan
Saya punya list data berdasarkan tahun, dimana list data tersebut dicek apakah list data tersebut setiap tahun ada datanya atau tidak… jika list data tersebut tidak ada data.nya, maka tambahkan object baru… ini codingannya saya :
$data = [
[
'hak' => '12',
'tambahan' => '6',
'sisa' => '12',
'tahun' => '2019'
],
[
'hak' => '12',
'tambahan' => '6',
'sisa' => '12',
'tahun' => '2021'
]
];
$tahun = [
'2019',
'2020',
'2021'
];
for($i=0;$i<count($tahun);$i++){
$tahun == $tahun[$i];
$filterData = array_filter($data, function($entry) {
global $tahun;
return $entry['tahun'] == $tahun;
} );
$newdata = [
'hak' => '12',
'tambahan' => '0',
'sisa' => '0',
'tahun' => $tahun
];
if(count($filterData)==0){
$data = array_push($newdata);
}
}
return $data;
Hasil yang diinginkan seperti ini:
[ { hak: '12', tambahan: '6', sisa: '12', tahun: '2019' },
{ hak: '12', tambahan: '0', sisa: '0', tahun: '2020' },
{ hak: '12', tambahan: '6', sisa: '12', tahun: '2021' } ]
Tetapi setelah saya jalankan codinganya, muncul error seperti ini : array_filter() expects parameter 1 to be array, null given
Jawaban
Halo, kalau saya lihat kamu salah menggunakan array_push()
:
$data = array_push($newdata);
cara yang benar untuk memakainya adalah
array_push($data, $newdata);
karena fungsi array_push()
akan mengembalikan return value berupa jumlah isi di dalam array yang sudah dimerge, bukan array yang sudah digabungkan tersebut. Makanya muncul error itu.