La fijación de un pequeño error de la @YurkaTim, su trabajo solución para mí, pero añadiendo use
:
Para utilizar $searchedValue
, dentro de la función, una solución puede ser use ($searchedValue)
después de los parámetros de función function ($e) HERE
.
la función array_filter
solamente el retorno de la $neededObject
el caso de la condición de retorno es true
Si $searchedValue
es una cadena o un entero:
$searchedValue = 123456; // Value to search.
$neededObject = array_filter(
$arrayOfObjects,
function ($e) use ($searchedValue) {
return $e->id == $searchedValue;
}
);
var_dump($searchedValue); // To see the output
Si $searchedValue
es matriz donde necesitamos comprobar con una lista:
$searchedValue = array(1, 5); // Value to search.
$neededObject = array_filter(
$arrayOfObjects,
function ($e) use ($searchedValue) {
return in_array($e->term_id, $searchedValue);
}
);
var_dump($searchedValue); // To see the output
configuración $ item to null no es necesario. – dAm2K
verifique su primera línea de código. – dAm2K
Vaya, ahí está :) Eso es en caso de que el elemento buscado no esté en la matriz. Alternativamente, puede usar 'isset ($ item)' pero prefiero inicializar las variables correctamente – Phil