<?php
function ruleTypes()
{
$ruleArray = [];
$types = [0 => ['type' => 'required', 'value_1' => null, 'value_2'=> null],
['type' => 'min', 'value_1' => 3, 'value_2'=> 0, 'value_2'=> null],
['type' => 'max', 'value_1' => 10, 'value_2'=> null],
['type' => 'between', 'value_1' => 10, 'value_2'=> 100]
];
$arr = [];
foreach ($types as $type) {
if (\in_array($type['type'], getNoValidationValueRequired())){
$ruleArray[] = $type['type'];
}else {
$ruleArray[] = sortRulesOrder($type); // $value . ':' . $value
}
}
return implode('|', $ruleArray);
}
function sortRulesOrder(array $type) {
if($type['type']){
if($type['value_1'] && $type['value_2'])
{
return $type['type'] . ':' . $type['value_1'] .',' .$type['value_2'];
} else {
$value = $type['value_1'] ? $type['value_1'] : $type['value_2'];
return $type['type'] . ':' . $value;
}
}
}
function getNoValidationValueRequired()
{
return ['required'];
}
var_dump(ruleTypes());
preferences:
103 ms | 402 KiB | 5 Q