Konversi Object ke Array dan Melakukan Filter di PHP

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:

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:

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:

<?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:

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