title: php: converting number to alphabet and vice versa
body: <p>So I have this function:</p>
  
  <pre><code>function toAlpha($data){
      $alphabet =   array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
      $alpha_flip = array_flip($alphabet);
      if($data &lt;= 25){
        return $alphabet[$data];
      }
      elseif($data &gt; 25){
        $dividend = ($data + 1);
        $alpha = '';
        $modulo;
        while ($dividend &gt; 0){
          $modulo = ($dividend - 1) % 26;
          $alpha = $alphabet[$modulo] . $alpha;
          $dividend = floor((($dividend - $modulo) / 26));
        } 
        return $alpha;
      }
  }
  </code></pre>
  
  <p>which given a number converts it into character and it works fine</p>
  
  <p>but then I also want a reverse function of this that given any output of this function, return the exact input that was put in to produce that output and I tried this:</p>
  
  <pre><code>function toNum($data){
  $alphabet =   array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
      $alpha_flip = array_flip($alphabet);
    if(strlen($data) == 1){
            return (isset($alpha_flip[$data]) ? $alpha_flip[$data] : FALSE);
          }
          else if(strlen($data) &gt; 1){
            $num = 1;
            for($i = 0; $i &lt; strlen($data); $i++){
              if(($i + 1) &lt; strlen($data)){
                $num *= (26 * ($alpha_flip[$data[$i]] + 1));
              }
              else{
                $num += ($alpha_flip[$data[$i]] + 1);
              }
            }
            return ($num + 25);
          }
  }
  </code></pre>
  
  <p>but it's not working properly...toAlpha(728) is producing 'aba' but toNum('aba') is producing 1378 rather than 728...</p>
  
  <p>what did I do wrong? how can I fix the reverse function so that it works properly?</p>
  
  <p>thanks in advance!</p>