original_string: public static function generate($length): string
      {
          $sets = ['abcdefghjkmnpqrstuvwxyz', 'ABCDEFGHJKMNPQRSTUVWXYZ', '23456789'];
          $all = '';
          $password = '';
          foreach ($sets as $set) {
              $password .= $set[array_rand(str_split($set))];
              $all .= $set;
          }
  
          $all = str_split($all);
          for ($i = 0; $i < $length - count($sets); $i++) {
              $password .= $all[array_rand($all)];
          }
  
          $password = str_shuffle($password);
  
          return $password;
      }
code: public static function generate($length): string
      {
          $sets = ['abcdefghjkmnpqrstuvwxyz', 'ABCDEFGHJKMNPQRSTUVWXYZ', '23456789'];
          $all = '';
          $password = '';
          foreach ($sets as $set) {
              $password .= $set[array_rand(str_split($set))];
              $all .= $set;
          }
  
          $all = str_split($all);
          for ($i = 0; $i < $length - count($sets); $i++) {
              $password .= $all[array_rand($all)];
          }
  
          $password = str_shuffle($password);
  
          return $password;
      }
code_tokens: public static function generate ( $ length ) : string { $ sets = [ 'abcdefghjkmnpqrstuvwxyz' , 'ABCDEFGHJKMNPQRSTUVWXYZ' , '23456789' ] ; $ all = '' ; $ password = '' ; foreach ( $ sets as $ set ) { $ password .= $ set [ array_rand ( str_split ( $ set ) ) ] ; $ all .= $ set ; } $ all = str_split ( $ all ) ; for ( $ i = 0 ; $ i < $ length - count ( $ sets ) ; $ i ++ ) { $ password .= $ all [ array_rand ( $ all ) ] ; } $ password = str_shuffle ( $ password ) ; return $ password ; }
docstring: Generates user-friendly random password containing at least one lower case letter, one uppercase letter and one
  digit. The remaining characters in the password are chosen at random from those three sets.
  
  @see https://gist.github.com/tylerhall/521810
  
  @param $length
  
  @return string
docstring_tokens: Generates user - friendly random password containing at least one lower case letter one uppercase letter and one digit . The remaining characters in the password are chosen at random from those three sets .