如何在PHP中将对象转换为特定格式的数组

时间:2018-02-28 09:13:29

标签: php arrays object

我有一个像

这样的JSON对象
[{"schedule_time_id":1},{"schedule_time_id":2}]

我想将此JSON对象转换为以下格式

[1,2]

我已经使用(array) $object来转换它,但没有获得目标格式。

2 个答案:

答案 0 :(得分:3)

有很多可能实现这一目标。其中一个就是在解码的json上使用数组映射。

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

答案 1 :(得分:2)

你拥有的是一个json字符串。您可以使用json_decode将其转换为关联数组

像:

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

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

这看起来像是:

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

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

)

如果要将其转换为简单数组(非关联数组),可以使用array_column

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

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

这将导致:

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

要缩短时间,您可以:

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