Ceritanya saya memiliki array yang berisikan beberapa object dan saya ingin melakukan konversi beberapa object tersebut menjadi array di dalam array. Isi dari $myObj sebagai berikut:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
Array
(
[0] => stdClass Object
(
[unit_penerima] => 52
[jabatan_penerima] => 574
)
[1] => stdClass Object
(
[unit_penerima] => 52
[jabatan_penerima] => 41
)
[2] => stdClass Object
(
[unit_penerima] => 7
[jabatan_penerima] => (anggap saja ini null)
)
[3] => stdClass Object
(
[unit_penerima] => 9
[jabatan_penerima] => (anggap saja ini null)
)
[4] => stdClass Object
(
[unit_penerima] => 11
[jabatan_penerima] => (anggap saja ini null)
)
)
|
Caranya adalah menggunakan perintah json_decode(json_encode($myObj), true);
dan hasilnya seperti di bawah:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
Array
(
[0] => Array
(
[unit_penerima] => 52
[jabatan_penerima] => 574
)
[1] => Array
(
[unit_penerima] => 52
[jabatan_penerima] => 41
)
[2] => Array
(
[unit_penerima] => 7
[jabatan_penerima] => (anggap saja ini null)
)
[3] => Array
(
[unit_penerima] => 9
[jabatan_penerima] => (anggap saja ini null)
)
[4] => Array
(
[unit_penerima] => 11
[jabatan_penerima] => (anggap saja ini null)
)
)
|
Berikutnya, saya ingin melakukan filter yang mana unit penerima nomor 52 saja yang ditampilkan sedangkan yang lain tidak. Caranya adalah menggunakan fungsi array_filter()
yang disediakan oleh PHP. Kepingan kodenya seperti berikut:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<?php
$array = array(
array('unit_penerima' => '52', 'jabatan_penerima' => '574'),
array('unit_penerima' => '52', 'jabatan_penerima' => '41'),
array('unit_penerima' => '7', 'jabatan_penerima' => null),
array('unit_penerima' => '9', 'jabatan_penerima' => null),
array('unit_penerima' => '11', 'jabatan_penerima' => null),
);
$unit_penerima_filter = '52';
$result = array_filter($array, function ($item) use ($unit_penerima_filter) {
if ($item['unit_penerima'] === $unit_penerima_filter) {
return true;
}
return false;
});
|
Hasil filternya akan menjadi seperti ini:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
Array
(
[0] => Array
(
[unit_penerima] => 52
[jabatan_penerima] => 574
)
[1] => Array
(
[unit_penerima] => 52
[jabatan_penerima] => 41
)
|
Semoga bermanfaat. :)
Referensi#
- Convert an object to associative array in PHP
- How to Filter Multidimensional Array by Key Value in PHP