Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Dodawanie do elementów w tablicy, Dodawanie minut do poszczególnych rekordów
ichu
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 26.08.2006

Ostrzeżenie: (0%)
-----


Kolejny problem... Pomocy!
Mam taką tablicę:

  1. <?php
  2. $sgp[1]="5:45";
  3. $sgp[2]="11:00";
  4. $sgp[3]="13:55";
  5. $sgp[4]="15:25";
  6. $sgp[5]="18:55";
  7. $sgp[6]="20:05";
  8. $sgp[7]="21:25";
  9. ?>


Jej rekordy to czasy (godzina:minuty). Jak zrobić, by pobierać te wartości powiększone o określoną ilość minut? Np. żeby w jednym pliku wszystkie te wartości były powiększone o 5 minut, a w innym o 7 minut? Przeglądałem forum i manuala, ale nie potrafiłem nic sklecić ze znalezionych wskazówek (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Ten post edytował ichu 27.08.2006, 17:02:08
Go to the top of the page
+Quote Post
skowron-line
post
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $sgp[1]="5:45";
  3. $sgp[2]="11:00";
  4. $sgp[3]="13:55";
  5. $sgp[4]="15:25";
  6. $sgp[5]="18:55";
  7. $sgp[6]="20:05";
  8. $sgp[7]="21:25";
  9.  
  10. $array = array_merge($sgp);
  11.  
  12. foreach($array as $key =>$value){
  13. $explode = explode(":","$value");
  14. echo "before: <b> $explode[0] $explode[1]</b> ";
  15. $explode[1] = ($explode[1]+5);
  16. if($explode[1] >= 60){
  17. $explode[0] = ($explode[0] + 1);
  18. $explode[1] = 00;
  19. }
  20. echo"after:$explode[0] $explode[1]<br>";
  21. }
  22. ?>

jesli to o to chodzi??

edit: uwzglednienie zmiany godziny

Ten post edytował skowron-line 27.08.2006, 17:40:55
Go to the top of the page
+Quote Post
ichu
post
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 26.08.2006

Ostrzeżenie: (0%)
-----


Hmm... Wkleiłem ten kod do strony i dostałem takie coś:
before: 45 after: 50
before: 00 after: 5
before: 55 after: 60
before: 25 after: 30
before: 55 after: 60
before: 05 after: 10
before: 25 after: 30

:| Nie kumam w ogóle tych wyników :/

Chodzi o to, że jest to rozkład jazdy dla danego kursu. Każdy plik, będący rozkładem dla kolejnych przystanków powinien pobrać te dane i zwiększyć każdy rekord o konkretną ilość minut (wartości początkowe są dla pierwszego przystanku. W każdym pliku mam np.
  1. <? echo $sgp[5]; ?>
i tak dalej. Chciałbym zrobić tak, żeby zmieniać tylko jeden współczynnik w każdym pliku, a skrypt już automatycznie powiększał każdy rekord o odpowiednią ilość minut...
Go to the top of the page
+Quote Post
skowron-line
post
Post #4





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


Cytat(ichu @ 27.08.2006, 16:25 ) *
before: 45 after: 50
before: 00 after: 5
before: 55 after: 60
before: 25 after: 30
before: 55 after: 60
before: 05 after: 10
before: 25 after: 30

:| Nie kumam w ogóle tych wyników :/

to sa minuty przed i po dodaniu 5 minut.
a dobrze rozumien ty chcesz zeby skrypt otwieral plik(plik.txt) i dodawal 5 min do wszystkich elementow tablicy??
Go to the top of the page
+Quote Post
ichu
post
Post #5





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 26.08.2006

Ostrzeżenie: (0%)
-----


No mniej więcej o to by mi chodziło (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Już rozumiem te wyniki, tylko jeszcze pojawia się problem: żeby php rozpoznawało to jako czas... Zauważ że nie ma godziny 5:60. Czy może napisać jakąś funkcję która zamieniała by 60 na 00 i dodawała 1 do godziny?

if (explode[1] >= 60)
{
explode[1] - 60;
explode[0] + 1;
}

A może da się jakoś prościej?

Ten post edytował ichu 27.08.2006, 17:43:09
Go to the top of the page
+Quote Post
skowron-line
post
Post #6





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


tez o tym pomyslalem i edytowalem post wyzej
Go to the top of the page
+Quote Post
ichu
post
Post #7





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 26.08.2006

Ostrzeżenie: (0%)
-----


OK, dzieki wielkie, jestem już blisko, ale... Jak to teraz z powrotem poskładać by $sgp[01] i kolejne były wyświetlone jako nowe, powiększone wartości? Próbowałem z implode, ale chyba nie ta kombinacja :/

  1. <?php
  2.  
  3. $array = array_merge($sgp);
  4. $odleglosc= 6;
  5.  
  6. foreach($array as $key =>$value){
  7. $explode = explode(":","$value");
  8. $explode[1] = ($explode[1]+$odleglosc);
  9. if($explode[1] >= 60){
  10. $explode[0] = ($explode[0] + 1);
  11. $explode[1] = 00;
  12. }
  13. echo"after:$explode[0] $explode[1]<br>";
  14. }
  15.  
  16. $sgp= implode(":", $array);
  17.  
  18. ?>


Ten post edytował ichu 27.08.2006, 18:03:29
Go to the top of the page
+Quote Post
skowron-line
post
Post #8





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


wstaw poprostu dwukropek pomiedzy explode[0] a explode[1] i bedzie po krzyku
Go to the top of the page
+Quote Post
ichu
post
Post #9





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 26.08.2006

Ostrzeżenie: (0%)
-----


Obawiam się że dwukropek nic nie da... Muszę chyba znowu połączyć te explode[0] i explode[1] żeby skrypt odczytał $sgp czyli zawartość tablicy jako wartości powiększone? Tylko jak skonstruować teraz to polecenie :/ Nie chcę wypisywać after: godzina bo mam już przygotowane odwołania w pliku...

Ten post edytował ichu 27.08.2006, 18:18:22
Go to the top of the page
+Quote Post
skowron-line
post
Post #10





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


wiesz nie wiem jaka masz konstrukcje pliku .txt ale jesli jest taka
  1. <?php
  2. $sgp[1]="5:45";
  3. $sgp[2]="11:00";
  4. $sgp[3]="13:55";
  5. $sgp[4]="15:25";
  6. $sgp[5]="18:55";
  7. $sgp[6]="20:05";
  8. $sgp[7]="21:25";
  9. ?>


to kicha moim zdaniem lepiej be bylo moim zdaniem jesli to beda poprostu godziny
12:00 itp

ale to tylko moje zdanie
Go to the top of the page
+Quote Post
ichu
post
Post #11





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 26.08.2006

Ostrzeżenie: (0%)
-----


No właśnie tak mam niestety, a może i stety, bo tak sobie rozplanowałem architekturę tego wszystkiego, żeby uwzględnić wszystkie zależności, i przy okazji żeby nie wykraczało to poza moją i tak słabą znajomość php... Wszystko jest już OK, pozostało tylko z powrotem połączyć elementy tabeli, żeby można było zastosować:

  1. <? echo $sg[1]; ?>


EDIT:
Problem rozwiazany, okazało się że w skrypcie jest na początku kilka błędów.

Ten post edytował ichu 28.08.2006, 07:26:46
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 19:06