简体   繁体   中英

how to convert an object into an array in a specific format in PHP

I have an JSON object like

[{"schedule_time_id":1},{"schedule_time_id":2}]

I want to convert this JSON object into the following format

[1,2]

I have used already (array) $object to convert it but doesn't get the targeted format.

There are plenty possibilites to achieve that. One of them would be to use array map over the decoded json.

$result = array_map(function ($item) {
    return $item->schedule_time_id;
}, json_decode($json));

What you have is a json string. You can use json_decode to convert it an associative array

Like:

$str = '[{"schedule_time_id":1},{"schedule_time_id":2}]';
$arr = json_decode( $str, true );

echo "<pre>";
print_r( $arr );
echo "</pre>";

This will look like:

Array
(
    [0] => Array
        (
            [schedule_time_id] => 1
        )

    [1] => Array
        (
            [schedule_time_id] => 2
        )

)

If you want to convert it to simple array(Not associative array), you can use array_column

$newArr = array_column( $arr, 'schedule_time_id' );

echo "<pre>";
print_r( $newArr );
echo "</pre>";

This will result to:

Array
(
    [0] => 1
    [1] => 2
)

To make it shorter, you can:

$str = '[{"schedule_time_id":1},{"schedule_time_id":2}]';
$newArr = array_column( json_decode( $str, true ) , 'schedule_time_id' );

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM