UnificatorHelper.php 774 Bytes
<?php
    
    namespace artbox\core\helpers;
    
    class UnificatorHelper
    {
        /**
         * Helper which returns unique value according to checker function
         * Checker function must return boolean
         *
         * @param string   $value
         * @param callable $checker
         *
         * @return string
         */
        public static function unify(string $value, callable $checker): string
        {
            $baseVal = $value;
            $index = 1;
            do {
                $result = call_user_func($checker, $value);
                if (!$result) {
                    $value = $baseVal . ' ' . $index;
                }
                $index++;
            } while (!$result);
            return $value;
        }
    }