Autor | Zpráva | ||
---|---|---|---|
gaminn Profil * |
#1 · Zasláno: 19. 12. 2005, 19:56:56
Zdravím, nikde jsem odpověď nenašel, proto se chci zeptat tady - existuje nějaký jednoduchý způsob, jak pracovat s posledním prvkem v poli? Tedy, abych nemusel používat $ar[Count($ar)-1]='hodnota posledního prvku', ale něco jednoduššího. Díky.
|
||
jozob Profil |
#2 · Zasláno: 19. 12. 2005, 19:58:19
Na čo to potrebuješ?
|
||
Havel-st Profil * |
#3 · Zasláno: 19. 12. 2005, 20:48:59
možná:
$pole = array_reverse($pole); echo $pole[0]; |
||
gaminn Profil * |
#4 · Zasláno: 19. 12. 2005, 21:08:54
To je celkem jedno, na co to potřebuji, jednoduše to používám celkem často ve svých skriptech, tak mě napadlo, jestli by to nešlo napsat nějak zkráceně.
Prohodit prvky polí by samozřejmě šlo, ale to už můžu klidně využívat tu svoji metodu, která bude asi přívětivější k serveru (co se týče náročnosti). |
||
Anonymní Profil * |
#5 · Zasláno: 19. 12. 2005, 21:12:58
zpočti si pomocí count() počet prvků v poli, odečti jedna a zjistíš index posledního prvku.
|
||
Michalek Profil |
#6 · Zasláno: 19. 12. 2005, 21:26:52
Anonymní
Přečti si dotaz a zjistíš, že to tam už je... Hledá se něco lehčího. |
||
Oswald Profil |
#7 · Zasláno: 19. 12. 2005, 21:48:25
|
||
gaminn Profil * |
#8 · Zasláno: 19. 12. 2005, 23:01:48
Oswald: Jj, toto mě taky napadlo, ale bohužel není možnost, jak do posledního prvku pole přiřazovat hodnoty, funkce end($array) sice vrátí hodnotu posledního prvku pole, ale samozřejmě nenabízí možnost, jak hodnoty nastavovat (něco na způsob end($array)='nova_hodnota' je samozřejmě blbost).
OK, tím vypadá toto téma za uzavřené, požadovaný parametr pole neexistuje;) Budu si muset tedy vystačit s tím, co používám doteď. Všem díky. |
||
gaminn Profil * |
#9 · Zasláno: 19. 12. 2005, 23:04:08
I když tedy, zase mi tak došlo (:)), i ta možnost s Count() není ideální, co když mám nadefinované prvky s indexy 0,1,3,8 a chci takto pracovat s posledním prvkem. $ar[Count($ar)-1]='hodnota' nastaví novou hodnotu v tomto případě prvku s indexem 3....
|
||
jozob Profil |
#10 · Zasláno: 20. 12. 2005, 06:53:56
gaminn
Nefungujú konštanty náhodou tak, že sa im priradí hodnota až pri zaápise? toto na zaciatku skriptu, resp. v konf. subore: define(X,count($ar)-1); a potom uz len: $posl = $ar[X]; Neviem, či to funguje práve v PHPéčku, ale zdá sa mi, že v nejakom jazyku to predsa len ide... no veď skús... A druhá možnosť ako to skrátiť je vytvorenie funkcie: function X($nazov_pola) { return count($$nazov_pola)-1; } A potom už len zápis: $posl = $ar[X($ar)]; *Pokiaľ niekto nerozumel zápisu "$$", je to použitie tzv. chameleon premennej, ked sa nazov premennej vytvorí z názvu premennej, ktorá sa nachádza na druhom mieste... malý príklad: $a="test"; $b="a"; echo $$b; // Vypise "test" Funguje to do nekonečného vnorovania: $a="test"; $b="a"; $c="b"; $d="c"; echo $$$$d; // Vypíše "test" To bola mala lekcia PHP, dúfam, že to pomôže, ak to niekto pred tým nepoznal :-) |
||
mila Profil |
#11 · Zasláno: 20. 12. 2005, 09:47:42
Když se podíváš do diskuze v manuálu k funkci end, pravděpodobně tam najdeš řešení svého problému.
|
||
gaminn Profil * |
#12 · Zasláno: 20. 12. 2005, 21:55:48
jozob: Definovat si konstantu je pro mě nepoužitelné, počet položek pole se v průběhu zpracování skriptu mění. Funkci vracející index posledního prvku pole jsem měl přesně takovou;)
mila: Díky, našel jsem to tam. Stačí to trochu upravit a bude to perfektně sloužit svému účelu. |
||
jozob Profil |
#13 · Zasláno: 21. 12. 2005, 05:35:18
gaminn
Ale asi si nepochopil, o čo mi ide... Neviem či to funguje, ale zdá sa mi, že hodnota konštanty sa vyhodnocuje až keď k nej pristupuješ... |
||
gaminn Profil * |
#14 · Zasláno: 21. 12. 2005, 14:23:54
Do konstanty je samozřejmě zapsána hodnota při její definici, právě proto to jsou konstanty. Jejich hodnota se v průběhu skriptu nemění, takže žádná její hodnota se nevyhodnocuje.
|
||
jozob Profil |
#15 · Zasláno: 21. 12. 2005, 14:25:41
Práve že nie som si istý... viem, že v niektorom jazyku to bolo tak ako som písal... ale neviem, či v PHPčku...
|
||
gaminn Profil * |
#16 · Zasláno: 21. 12. 2005, 14:29:59
PHP to určitě nebylo;)
|
||
jozob Profil |
#17 · Zasláno: 21. 12. 2005, 14:35:04
ok
|
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0