Ukazatel pole – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Ukazatel pole – PHP – Fórum – Programujte.comUkazatel pole – PHP – Fórum – Programujte.com

 

Figa0
Super člen
14. 3. 2009   #1
-
0
-

Ahoj, v poli mam ulozene napriklad tyto hodnoty:

$pole[0]=21
$pole[1]=5
$pole[2]=9
$pole[3]=8
$pole[4]=11

Z $_GET zídkám například 8 a potrebuji nasstavit ukazatel pole na tu hodnotu
8, abych pote mohl pouzit prev($pole) a next($pole) Jak to udelat? Predem dekuji za vase odpovedi.

Nahlásit jako SPAM
IP: 87.249.133.–
KIIV
~ Moderátor
+43
God of flame
14. 3. 2009   #2
-
0
-

tak jak tak se budes muset tim polem prokousat a najit tu 8 aby si mohl nechat ten ukazatel...

Nahlásit jako SPAM
IP: 80.250.1.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Prog.0
Věrný člen
14. 3. 2009   #3
-
0
-

Nie som si istý, či som to správne pochopil, ale ak áno, potom:

current prvok v poli nemôžeš nastavovať priamo. Vieš spraviť iba reset, čím sa dostaneš na začiatok a potom sa pomocou prev/next posúvaš. Takže prvé čo spravíš je reset($pole) a potom sa opakovane posúvaš po prvokch až kým nenájdeš ten ktorý chceš a vtedy sa prestaneš posúvať - pole ostane nastavené na tom mieste. Tiež je potrebné zisťovať či už niesi na konci poľa pre prípad, že by tam ten prvok nebol...

reset($pole);

while(
current($pole)!==$_GET['current'] && next($pole)!==false
) ;
alebo ak sa ti viac pači for..
for (

reset($pole);
current($pole)!==false && current($pole)!==$_GET['current'];
next($pole)
) ;

po vykonani niektoreho z tychto kódov máš pole nastavené na pozícii prvku v $_GET['current'], alebo - ked tam ten prvok nie je tak na konci pola.


Ja však dosť nerozumiem, na čo je to dobré, keďže existuje množstvo jednoduchších spôsobov pre prístup k prvkom... Takže ak popíšeš kde to potrebuješ, skúsime nájsť jednoduchšie riešenie...

Nahlásit jako SPAM
IP: 213.160.186.–
Prog.
Figa0
Super člen
14. 3. 2009   #4
-
0
-

Mam fotogalerii apotrebuju prepinat dalsi nebo predchozi fotku. Jiank moc dekuji.
No mam tento kod:



reset($fotky);
while(current($fotky)!==$_GET["id"] && next($fotky)!==false);
<div id="last"><a href="<?php echo "fotky.php?id=".prev($fotky)."&idkat=".$_GET["idkat"]; ?>"><img src="last.png" /></a></div>
<div id="next"><a href="<?php echo "fotky.php?id=".next($fotky)."&idkat=".$_GET["idkat"]; ?>"><img src="next.png" /></a></div>


a problem je v tom ze se mi ukazatel posune nejdrive o jedno dozadu a potom o jedno dopredu, takze dopredu nefunguje a zustava na stejnem miste. Jak udelat next 2x?

Nahlásit jako SPAM
IP: 87.249.133.–
Prog.0
Věrný člen
14. 3. 2009   #5
-
0
-

<div id="next"><a href="<?php next($fotky); echo "fotky.php?id=".next($fotky)."&i...

Stale nerozumiem prečo to robíš tak krkolomne, nebolo by jednoduchšie predávať getom miesto hodnoty rovno index poľa?

btw oposit od next != last, ale previous, last je niečo iné...

Nahlásit jako SPAM
IP: 213.160.186.–
Prog.
Figa0
Super člen
14. 3. 2009   #6
-
0
-

Děkuji ale to taky nefunguje. Protože to zase nefunguje prev je to logicke. jak menit jenom index pole?

Nahlásit jako SPAM
IP: 87.249.133.–
KIIV
~ Moderátor
+43
God of flame
14. 3. 2009   #7
-
0
-

To Figa : jak jde menit jen index pole?
budes mit treba:

$pole = array( 'neco.jpg','dalsi.jpg','treti.jpg','posledni.jpg' );

tak posles scriptu ze chces prvni:

neco?obr=1

a vevnitr jen echo $pole[$_GET['obr']]; // to vypise jen nazev... jinak <img ...>
no a predchudce mas $_GET['obr']-1, nasledovnika $_GET['obr']+1 samo lze jeste kontrolovat jestli takovej index v poli vubec je
pak osetrit ten GET aby tam neslo zadat nic krom cisla a pripadne nahradit za 1

Nahlásit jako SPAM
IP: 80.250.1.–
Program vždy dělá to co naprogramujete, ne to co chcete...
hrach
~ Redaktor
+1
Boss
14. 3. 2009   #8
-
0
-

array_search()

Nahlásit jako SPAM
IP: 90.179.27.–
http://jan.skrasek.com@hrachcz – webdeveloper
Prog.0
Věrný člen
16. 3. 2009   #9
-
0
-

To hrach : array_search nastavi pole na najdeny prvok???

Nahlásit jako SPAM
IP: 213.160.186.–
Prog.
hrach
~ Redaktor
+1
Boss
16. 3. 2009   #10
-
0
-

ne :) ale je to jedna z cest. nekdy je lepsi porovnavat klice nez hodnoty. :)

Nahlásit jako SPAM
IP: 90.179.27.–
http://jan.skrasek.com@hrachcz – webdeveloper
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 6 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý