Fixing a small mistake of YurkaTim's answer (the solution works for me, but adding use):
To use $searchedValue, inside of the function, one solution can be use ($searchedValue) after function parameters function ($e) HERE.
The array_filter function only returns on $neededObject. The if the condition on return is true.
If $searchedValue is a string or integer:
$searchedValue = 123456; // Value to search.
$neededObject = array_filter(
$arrayOfObjects,
function ($e) use ($searchedValue) {
return $e->id == $searchedValue;
}
);
var_dump($neededObject); // To see the output
If $searchedValue is an array where we need check with a list:
$searchedValue = array( 1, 5 ); // Value to search.
$neededObject = array_filter(
$arrayOfObjects,
function ( $e ) use ( $searchedValue ) {
return in_array( $e->term_id, $searchedValue );
}
);
var_dump($neededObject); // To see the output