[ Príspevkov: 3 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.04.09
Prihlásený: 28.11.17
Príspevky: 1178
Témy: 188 | 188
NapísalOffline : 31.03.2012 17:16 | Posledná hodnota v foreach

Zdravim.
Tento kod:
Kód:
<?php
   $out = '';
   
   $string = 'nieco1,nieco2';
   $array_e = explode( ',', $string );
   reset( $array_e );
               
   foreach( $array_e as $key => $value ) {
      
      $lastone = next( $array_e ) === FALSE;
      $out .= $value;
      if( !$lastone ) $out .= '-';
      
   }
   
   echo "\"".$out."\"";
?>


Vypise:
"nieco1nieco2"

Lenze ked tam pridam par riadkov aby to vyzeralo takto:
Kód:
<?php
   $out = '';
   
   $string = 'nieco1,nieco2';
   $array_e = explode( ',', $string );
   reset( $array_e );
   
   $temp = array();
   foreach( $array_e as $key => $value ) {
      $temp[$key] = $value;
   }
   $array_e = $temp;
               
   foreach( $array_e as $key => $value ) {
      
      $lastone = next( $array_e ) === FALSE;
      $out .= $value;
      if( !$lastone ) $out .= '-';
      
   }
   
   echo "\"".$out."\"";
?>


vypise:
"nieco1-nieco2"


Absolutne tomu nechapem, kedze var_dump( $array_e ) vracia v obydvoch pripadoch:
array(2) { [0]=> string(6) "nieco1" [1]=> string(6) "nieco2" }
a current( $array_e ) vracia v obydvoch pripadoch:
nieco1

Mohol by mi to prosim niekto vysvetlit ?

// Inac tiez nerozumiem preco v 2. pripade toto:
Kód:
$lastone = next( $array_e ) === FALSE;

funguje. Podla mna by to malo preskocit kazdu 2. hodnotu. Nasiel som to na nete.


_________________
CPU: Intel core i5 3470 GPU: Gigabyte N760OC-2GD MB: MSI B75A-G43 RAM: DDRAM3 8GB (2x4GB) TEAM RAM 1600MHz Elite Zdroj: Seasonic G Series 450W HDD: 500GB vybraty z notebooku Lenovo E531 i5-3230M N4IBPXS SSD:Samsung 840 Evo 250GB Case: Fractal Define R4 black pearl FAN: Cooler Master Hyper 212+ EVO DVD: SAMSUNG DVD±R/±RW/RAM SH-224DB SATA, černá, bulk OS: Ubuntu 12.04 64bit & Windows 7 Ultimate 64bit Monitor: Dell U2412m
Offline

Užívateľ
Užívateľ
Posledná hodnota v foreach

Registrovaný: 26.12.06
Prihlásený: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
NapísalOffline : 31.03.2012 19:09 | Posledná hodnota v foreach

prvy foreach je zbytocny, nic nerobi

next vracia nasledujuci prvok v poli, kedze vrati false, tak uz nasledujuci nie je, cize spojovnik nepridavas.

tento isty efekt dostanes tymto kodom

Kód:
$string = 'nieco1,nieco2';
$out = str_replace(',' ,'-', $string);


popripadne
Kód:
$string = 'nieco1,nieco2';
$out = implode('-', explode(',', $string));


// pridané po 35 sekundách od posledného príspevku

rpeco by to podla teba malo preskocit kazdu druhu hodnotu?


_________________
Sorry za prelkepy
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.04.09
Prihlásený: 28.11.17
Príspevky: 1178
Témy: 188 | 188
Napísal autor témyOffline : 31.03.2012 19:40 | Posledná hodnota v foreach

Ja chapem ze prvy foreach je zbytocny, lenze ked tam je, ten kod sa sprava inac. Prave tomu nechapem.

Viem ze moj kod by sa dal nahradit jednoduchsim ale ten moj kod je vytrhnuty z kontextu a zjednoduseny. Je len na ukazku, v skutocnosti vnutri foreach toho robim viac.

Preskakovat na druhu by to malo podla mna preto, lebo (takto nad tym rozmyslam):
- Foreach prechadza jednotlive prvky pola, pricom zakazdym posunie pointer na dalsi prvok.
- Funkcia next() tiez posunie pointer a potom vrati aktualny prvok. => pointer bol posunuty 2x a toto sa deje vzdy na zaciatku foreach-u.

No ale zjavne sa niekde mylim.

// Ale s tym next() sa asi nemylim:
php.net píše:
next() behaves like current(), with one difference. It advances the internal array pointer one place forward before returning the element value. That means it returns the next array value and advances the internal array pointer by one.


_________________
CPU: Intel core i5 3470 GPU: Gigabyte N760OC-2GD MB: MSI B75A-G43 RAM: DDRAM3 8GB (2x4GB) TEAM RAM 1600MHz Elite Zdroj: Seasonic G Series 450W HDD: 500GB vybraty z notebooku Lenovo E531 i5-3230M N4IBPXS SSD:Samsung 840 Evo 250GB Case: Fractal Define R4 black pearl FAN: Cooler Master Hyper 212+ EVO DVD: SAMSUNG DVD±R/±RW/RAM SH-224DB SATA, černá, bulk OS: Ubuntu 12.04 64bit & Windows 7 Ultimate 64bit Monitor: Dell U2412m
 [ Príspevkov: 3 ] 


Posledná hodnota v foreach



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

foreach() nepracuje

v PHP, ASP

4

135

24.08.2017 14:16

dilong

V tomto fóre nie sú ďalšie neprečítané témy.

Foreach - pomoc

v PHP, ASP

10

360

09.01.2011 12:43

walther

V tomto fóre nie sú ďalšie neprečítané témy.

Posledná Kontrola

v PC zostavy

9

92

25.12.2013 20:11

4040

V tomto fóre nie sú ďalšie neprečítané témy.

[VYRIESENE] Posledna aktualizacia

v PHP, ASP

5

309

07.02.2009 9:39

rooobertek

V tomto fóre nie sú ďalšie neprečítané témy.

Polia , príkaz foreach

v PHP, ASP

4

537

30.12.2011 11:51

shaggy

V tomto fóre nie sú ďalšie neprečítané témy.

JAVA, FOREACH CYKLUS

v Assembler, C, C++, Pascal, Java

2

121

25.08.2017 8:20

mitko

V tomto fóre nie sú ďalšie neprečítané témy.

dve polia & foreach

v PHP, ASP

8

437

08.07.2009 16:03

Snacker

V tomto fóre nie sú ďalšie neprečítané témy.

Posledná kontrola zostavy (Herná)

v PC zostavy

3

91

16.12.2012 15:38

MeFo

V tomto fóre nie sú ďalšie neprečítané témy.

C# foreach v DNS.GetHostAddresses

v Technológia .NET

2

147

12.01.2014 11:18

dany2281995

V tomto fóre nie sú ďalšie neprečítané témy.

posledna uprava pred kupou PC

v PC zostavy

5

242

27.07.2008 0:19

Jaro

V tomto fóre nie sú ďalšie neprečítané témy.

Else a If vo foreach()

v PHP, ASP

3

257

22.04.2011 19:12

Blackshadow

V tomto fóre nie sú ďalšie neprečítané témy.

moja posledná tvorba - http://www.autobest.sk

v Webdesign

19

1493

22.07.2006 11:17

javo

V tomto fóre nie sú ďalšie neprečítané témy.

Kde je ulozena posledna relacia v Mozille...???

v Sieťové a internetové programy

11

123

31.01.2013 0:17

peto.vac

V tomto fóre nie sú ďalšie neprečítané témy.

Firefox 52 - koniec NPAPI pluginov a posledná verzia pre Windows XP a Vista

v Sieťové a internetové programy

2

138

09.03.2017 8:19

hanesovic

V tomto fóre nie sú ďalšie neprečítané témy.

Hodnota

v PHP, ASP

6

487

12.08.2009 12:53

scrysurn

V tomto fóre nie sú ďalšie neprečítané témy.

max hodnota

v JavaScript, VBScript, Ajax

2

256

03.01.2012 21:44

Ďuri



© 2005 - 2017 PCforum, edited by JanoF