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

  1. Convert an object to associative array in PHP
  2. How to Filter Multidimensional Array by Key Value in PHP