Autor | Zpráva | ||
---|---|---|---|
dtx Profil * |
#1 · Zasláno: 4. 7. 2011, 09:22:38
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 |
#2 · Zasláno: 4. 7. 2011, 09:45:58
No a co nevíš? jak do dostat s Excelu nebo jak udělat s řetězce pole?
|
||
okolojdouci Profil * |
#3 · Zasláno: 4. 7. 2011, 09:46:54
$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 * |
#4 · Zasláno: 4. 7. 2011, 09:50:31
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 * |
#5 · Zasláno: 4. 7. 2011, 09:52:23
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 * |
#6 · Zasláno: 4. 7. 2011, 09:56:29
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 * |
#7 · Zasláno: 4. 7. 2011, 10:06:40
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 |
#8 · Zasláno: 4. 7. 2011, 10:13:50
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; } |
||
Časová prodleva: 13 let
|
0