. */ namespace SP\Util; /** * Class ArrayUtil * * @package SP\Util */ final class ArrayUtil { /** * Buscar un objeto en un array según el valor de una propiedad * * @param array $array * @param string $property Nombre de la propiedad * @param string $value Valor de la propiedad * @param null $default Valor por defecto * * @return false|object */ public static function searchInObject( array $array, string $property, string $value, $default = null ) { foreach ($array as $object) { if (is_object($object) && isset($object->$property) && $value == $object->$property ) { return $object; } } return null !== $default ? $default : false; } /** * Comprobar si un valor existe en un array de objetos * * @param array $objectArray * @param string $method * @param mixed $value * * @return bool */ public static function checkInObjectArrayMethod(array $objectArray, string $method, $value) { foreach ($objectArray as $object) { if (is_callable([$object, $method]) && $object->$method() === $value) { return true; } } return false; } /** * Comprobar si un valor existe en un array de objetos * * @param array $objectArray * @param string $property * @param mixed $value * * @return bool */ public static function checkInObjectArray(array $objectArray, string $property, $value) { if (empty($objectArray)) { return false; } foreach ($objectArray as $object) { if (is_object($object) && isset($object->$property) && $object->$property == $value ) { return true; } } return false; } }