/ / Criando uma seqüência de 1-ZZZZZZZZ em PHP - php

Criando uma seqüência de 1-ZZZZZZZZ em PHP - php

Eu estou trabalhando em algo onde eu precisogerar a seqüência 1,2,3 ... a, b, c, d ... z, 11,12,13 ... aa, ab, ac ... zzzzzzzz, usando php. Isso só terá que acontecer uma vez, então não precisa ser muito rápido.

Obrigado!

Respostas:

2 para resposta № 1
function incrementAlphanumeric($number) {
return base_convert(base_convert($number, 36, 10) + 1, 10, 36);
}

echo incrementAlphanumeric(9); // outputs "a"

Para preencher uma matriz:

$number = 1;
$numbers = array();
while ($number != "zzzzzzzz") {
$numbers[] = $number;
$number = incrementAlphanumeric($number);
}

http://php.net/base-convert


0 para resposta № 2

Eu recentemente tive que fazer isso com um conjunto de caracteres não padrão (eles deixaram de fora certos personagens).

Reuni algumas funções que encontrei na net e recebi:

// this array misses a few letters due to the special naming convention
private $alphabet = array("0", "1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","J","K","L","M","N","P","Q","R","S","T","U","V","W","X","Y","Z");

private function createDecimalFromCode($string){

$decimal = 0;
$base = count($this->alphabet);
$charset = implode($this->alphabet, "");
$charset = substr($charset, 0, $base);

do {

$char   = substr($string, 0, 1);
$string = substr($string, 1);

$pos = strpos($charset, $char);
if ($pos === false) {
$error[] = "Illegal character ($char) in INPUT string";
return false;
} // if
$decimal = ($decimal * $base) + $pos;
} while($string <> null);

return $decimal;


}

private function  createCodeFromDecimal($decimal){

$s = "";
while($decimal > 0) {

$s = $this->alphabet[$decimal%sizeof($this->alphabet)] . $s;
$decimal = floor($decimal/sizeof($this->alphabet));
}



return $s == "" ? "0" : $s;
}

Essencialmente eu pego meu último código criado, o converto em um decimal, adiciono 1 e então o converto de volta ao próximo código alfanumérico.