@@ -340,6 +340,43 @@ is thrown::
340340In sub-classes, you can use:method: `Symfony\\ Component\\ OptionsResolver\\ OptionsResolver::addAllowedTypes `
341341to add additional allowed types without erasing the ones already set.
342342
343+ You can specify an array of a specific type as an allowed option. The expected type is
344+ validated in the same way as before (``is_<type>() `` or an ``instanceof `` check).
345+ Only for an array, this is done recursively. If you expect an option to be an array of
346+ ``DateTime `` instances or a numeric array, you can specify this as follows::
347+
348+ // ...
349+ class Mailer
350+ {
351+ // ...
352+ public function configureOptions(OptionsResolver $resolver)
353+ {
354+ // ...
355+ $resolver->setAllowedTypes('dates', 'DateTime[]');
356+ $resolver->setAllowedTypes('ports', 'int[]');
357+ }
358+ }
359+
360+ Because the OptionsResolver will validate typed arrays recurively, it is possible to
361+ resolve multi-dimensional arrays, too::
362+
363+ // ...
364+ class Mailer
365+ {
366+ // ...
367+ public function configureOptions(OptionsResolver $resolver)
368+ {
369+ // ...
370+ //allowed type is a 2D array of string values
371+ $resolver->setAllowedTypes('hosts', 'string[][]');
372+ }
373+ }
374+
375+ ..versionadded ::3.1
376+ Before Symfony 3.1, the allowed types had to be scalar values, qualified classes
377+ or interfaces. The only way to ensure the values of an array were of the right type
378+ was to use a normalizer.
379+
343380Value Validation
344381~~~~~~~~~~~~~~~~
345382