<?php namespace App\Validation; class ArrayValidation { public static function validateFunc1(array $array): bool { $prices = array_column($array, 'price'); $counts = array_column($array, 'count'); return ctype_digit(implode('',$prices)) && ctype_digit(implode('', $counts)); } public static function validateFunc2(array $array): bool { $ids = array_column($array, 'id'); $ages = array_column($array, 'age'); return ctype_digit(implode('', $ids)) && ctype_digit(implode('', $ages)); } public static function validate(array $array): ConstraintViolationListInterface { $validator = Validation::createValidator(); $constraints = new Assert\Optional([ new Assert\Collection([ new Assert\Optional([ new Assert\Type('array'), new Assert\Collection([ new Assert\Type('string'), new Assert\Type('string'), ]) ]) ]) ]); return $validator->validate($array, $constraints); } }