Skip to content
Snippets Groups Projects
ArrayValidation.php 1.12 KiB
Newer Older
Адлан Шамавов's avatar
Адлан Шамавов committed
<?php

namespace App\Validation;

class ArrayValidation
{
Адлан Шамавов's avatar
Адлан Шамавов committed
    public static function validateFunc1(array $array): bool
Адлан Шамавов's avatar
Адлан Шамавов committed
    {
Адлан Шамавов's avatar
Адлан Шамавов committed
        $prices = array_column($array, 'price');
        $counts = array_column($array, 'count');
        return ctype_digit(implode('',$prices)) && ctype_digit(implode('', $counts));
Адлан Шамавов's avatar
Адлан Шамавов committed
    }
Адлан Шамавов's avatar
Адлан Шамавов committed
    public static function validateFunc2(array $array): bool
Адлан Шамавов's avatar
Адлан Шамавов committed
    {
Адлан Шамавов's avatar
Адлан Шамавов committed
        $ids = array_column($array, 'id');
        $ages = array_column($array, 'age');
        return ctype_digit(implode('', $ids)) && ctype_digit(implode('', $ages));
Адлан Шамавов's avatar
Адлан Шамавов committed
    }
Адлан Шамавов's avatar
Адлан Шамавов committed
    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([
Адлан Шамавов's avatar
Адлан Шамавов committed
                        new Assert\Type('string'),
                    ])
                ])
            ])
        ]);
        return $validator->validate($array, $constraints);
    }
}