Autor Zpráva
dtx
Profil *
Zdravím,

potřebuji vytvořit pole s následujícím obsahem:

array('A','B','C','D',...'X','Y','Z','AA','AB','AC',...,'AX','AY','AZ','BA','BB','BC',...,..,.... 'ZX','ZY','ZZ')

tedy všímaví jistě zaznamenali, že se jedná v podstatě o názvy sloupců v Excelu (ty tečky tam samozřejmě nahrazují to, co se mi nechtělo vypisovat :)

Právě takové pole potřebuju pro práci s Excelem v PHP a nechce se mi ho vytvářet ručně. Zároveň mě zajímá, jak by se toto dalo programově vytvořit - už jen ze zvědavosti.
breeta
Profil
No a co nevíš? jak do dostat s Excelu nebo jak udělat s řetězce pole?
okolojdouci
Profil *
$arr=array();
for ($i = 64; $i <= 90; $i++) {
    $znak = chr($i);
    if ($i==64) {$znak = "";};
    for ($j = 65; $j <= 90; $j++) {
       array_push($arr,$znak.chr($j);
    }
}
dtx
Profil *
Nevím, jak vytvořit pole obsahující to, co jsem nahoře napsal.. tedy když ve výsledku dám print_r($pole), aby to vypsalo něco ve smyslu

Array (
  [0] => 'A',
  [1] => 'B',
  [2] => 'C',
  [3] => 'D',
  ....
  [997] => 'ZX',
  [998] => 'ZY',
  [999] => 'ZZ',
)
dtx
Profil *
okolojdouci:
Tak to je přesně to, co jsem chtěl :) díky moc.. To jsi vytvořil teď z hlavy? Já jen, jestli se mám zastydět :)
okolojdouci
Profil *
dtx:
Tak to je přesně to, co jsem chtěl :) díky moc.. To jsi vytvořil teď z hlavy? Já jen, jestli se mám zastydět :)

Úplně z hlavy ne, nikdy nevím, jestli se ta funkce jmenuje array_push nebo push_array :)
(na 6. řádku mi na konci chybí závorka, ale tos zřejmě vyřešil)
dtx
Profil *
okolojdouci:
:) jj, vyřešil.. ono je to v podstatě koukám docela easy, jen to chtělo znát funkci chr().. takže ano, stydím se :)
DJ Miky
Profil
Jde to ještě jednodušeji (a trochu přehledněji), PHP umí inkrementovat řetězce:
$pole=array();
$znak='A';
while(true) {
	$pole[]=$znak;
	if($znak++=='ZZ') break;
}

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0