parseCSV::_check_count PHP Method

_check_count() public method

Check if passed info might be delimiter - only used by find_delimiter()
public _check_count ( $char, $array, $depth, $preferred ) : special
return special string used for delimiter selection, or false
    function _check_count($char, $array, $depth, $preferred)
    {
        if ($depth == count($array)) {
            $first = null;
            $equal = null;
            $almost = false;
            foreach ($array as $key => $value) {
                if ($first == null) {
                    $first = $value;
                } elseif ($value == $first && $equal !== false) {
                    $equal = true;
                } elseif ($value == $first + 1 && $equal !== false) {
                    $equal = true;
                    $almost = true;
                } else {
                    $equal = false;
                }
            }
            if ($equal) {
                $match = $almost ? 2 : 1;
                $pref = strpos($preferred, $char);
                $pref = $pref !== false ? str_pad($pref, 3, '0', STR_PAD_LEFT) : '999';
                return $pref . $match . '.' . (99999 - str_pad($first, 5, '0', STR_PAD_LEFT));
            } else {
                return false;
            }
        }
    }