0; } public static function filterByValueCompatibility(array $list, $value) { Assertion::allIsInstanceOf($list, Typed::class); $is_numeric = is_numeric($value); $is_valid_date = RecordHelper::validateDate($value); $filtered = []; foreach ($list as $item) { switch ($item->getType()) { case Mapping::TYPE_FLOAT: case Mapping::TYPE_DOUBLE: case Mapping::TYPE_INTEGER: case Mapping::TYPE_LONG: case Mapping::TYPE_SHORT: case Mapping::TYPE_BYTE: if ($is_numeric) { $filtered[] = $item; } break; case Mapping::TYPE_DATE: if ($is_valid_date) { $filtered[] = $item; } break; case Mapping::TYPE_STRING: default: $filtered[] = $item; } } return $filtered; } }