PHP - 从对象数组中提取属性

php
2022-08-30 06:35:45

我有一系列猫咪对象:

$cats = Array
    (
        [0] => stdClass Object
            (
                [id] => 15
            ),
        [1] => stdClass Object
            (
                [id] => 18
            ),
        [2] => stdClass Object
            (
                [id] => 23
            )
)

我想在1行中提取一个猫ID数组(不是函数也不是循环)。

我正在考虑使用,但我不知道该怎么做。array_walkcreate_function

有什么想法吗?


答案 1

如果您使用的是 PHP 5.5 或更高版本,最好的方法是使用内置函数:array_column()

$idCats = array_column($cats, 'id');

但儿子必须是数组或转换为数组


答案 2

警告自 PHP 7.2.0 起已弃用。强烈建议不要依赖此功能。create_function()

您可以使用 array_map() 函数。
这应该这样做:

$catIds = array_map(create_function('$o', 'return $o->id;'), $objects);

正如@Relequestual在下面所写的那样,该功能现在直接集成在array_map中。新版本的解决方案如下所示:

$catIds = array_map(function($o) { return $o->id;}, $objects);

推荐