在给定属性值的对象数组中查找数组键

el_*_*ick 24 php arrays object

我有一个像这样的对象数组:

Array
(
    [945] => member Object
        (
            [id] => 13317
            [name] => Test 999
            [last_name] => Test 999
        )

    [54] => member Object
        (
            [id] => 13316
            [name] => Manuel
            [last_name] => Maria parra
        )

    [654] => member Object
        (
            [id] => 13315
            [name] => Byron 
            [last_name] => Castillo
        )

    [656] => member Object
        (
            [id] => 13314
            [name] => Cesar
            [last_name] => Vasquez
        )
)
Run Code Online (Sandbox Code Playgroud)

我需要根据属性值删除其中一个对象.
例如,我想从数组中删除对象id 13316.

eri*_*sco 74

这是功能方法:

$neededObjects = array_filter(
    $objects,
    function ($e) {
        return $e->id != 13316;
    }
);
Run Code Online (Sandbox Code Playgroud)

  • 有人下来投了一个漂亮的`array_filter`?*悲伤的脸* (21认同)
  • 数组是第一个array_filter参数,而不是最后一个!http://php.net/manual/en/function.array-filter.php (8认同)
  • 完美,值得注意的是你可以像`function($ e)use($ id_to_find){`一样定义闭包,以便能够传递包含要搜索的ID的var.也许我是唯一一个不知道这个的人;)[PHP手册 - 例3](http://php.net/manual/en/functions.anonymous.php) (8认同)
  • 多么谦虚 (3认同)