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

2022-08-30 17:21:42

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

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
        )
)

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


答案 1

以下是功能方法:

$neededObjects = array_filter(
    $objects,
    function ($e) use ($idToFilter) {
        return $e->id != $idToFilter;
    }
);

答案 2
function filter_by_key($array, $member, $value) {
   $filtered = array();
   foreach($array as $k => $v) {
      if($v->$member != $value)
         $filtered[$k] = $v;
   }
   return $filtered;
}

$array = ...
$array = filter_by_key($array, 'id', 13316);