[ Príspevkov: 3 ] 
AutorSpráva
Offline

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

Registrovaný: 14.04.09
Prihlásený: 20.01.18
Príspevky: 1171
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: 3971
Témy: 181 | 181
Bydlisko: Nitra / Bra...
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ý: 20.01.18
Príspevky: 1171
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

169

24.08.2017 14:16

dilong

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

Foreach - pomoc

v PHP, ASP

10

374

09.01.2011 12:43

walther

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

Posledná Kontrola

v PC zostavy

9

104

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

318

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

565

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

186

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

451

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

108

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

175

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

256

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

267

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

1504

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

138

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

175

09.03.2017 8:19

hanesovic

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

Hodnota

v PHP, ASP

6

514

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

275

03.01.2012 21:44

Ďuri



© 2005 - 2018 PCforum, edited by JanoF