Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Tablice
potreb
post 6.05.2008, 14:44:45
Post #1





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


Witam, mam banalny problem. Mam tablice w takiej postaci:
Kod
Array (
[0] => 080417.html [1] => 080418.html [2] => 080419.html [3] => 080421.html [4] => 080422.html [5] => 080423.html [6] => 080424.html
)


Przez foreach wyświetlam nazwy plików, ale chcę także wyświetlić numery:
  1. <?php
  2. foreach($pliki as $nazwa => $file)
  3. {
  4.  
  5. $poprzedni = mktime (0,0,0,date("m") ,date("d")-1, date("Y"));
  6. $dzien = date("d",($poprzedni));
  7. echo "wczoraj był $dzien "; 
  8. echo "<a href='".$pliki[$files]."'>".$nazwa."</a><br/>";
  9. }
  10. ?>


Po co? Do date-1 - (numer z tablicy) będzie mi cofało date wstecz, tak abym mógł wyświetlić dni do tyłu.


--------------------

Go to the top of the page
+Quote Post
webdice
post 6.05.2008, 14:53:39
Post #2


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Cytat(potreb @ 6.05.2008, 15:44:45 ) *
(...) ale chcę także wyświetlić numery: (...)


Co masz na myśli pisząc numer? Jeśli index tablicy to masz go w zmiennej nazwa.
Go to the top of the page
+Quote Post
potreb
post 6.05.2008, 15:05:20
Post #3





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


Ehh mój błąd bo dałem zły kod:
  1. <?php
  2. $dir = 'prasa/';
  3. if($d = opendir($dir))
  4. {
  5. $pliki = array();
  6. while($file = readdir($d))
  7. {
  8. if($file != '.' and $file != '..' and !eregi("r", $file))
  9. {
  10. $pliki[$file] = $file;
  11. $ddd[] = $pliki[$file];
  12. }
  13. }
  14. }
  15. print_r($ddd);
  16.  
  17. foreach($ddd as $nazwa => $file)
  18. {
  19. $poprzedni = mktime (0,0,0,date("m") ,date("d")-1, date("Y"));
  20. $dzien = date("d",($poprzedni));
  21. echo "wczoraj był $dzien "; 
  22. echo "<a href='".$pliki[$files]."'>".$nazwa."</a><br/>";
  23. }
  24. ?>


W nazwie name mam indexy tablicy, ale jeszcze trzeba mi nazwy plików :/


--------------------

Go to the top of the page
+Quote Post
webdice
post 6.05.2008, 15:11:23
Post #4


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




  1. <?php
  2. substr ($file, 0, -5)
  3. ?>


O to chodzi?
Go to the top of the page
+Quote Post
potreb
post 6.05.2008, 15:15:06
Post #5





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


Nie smile.gif

Jak mam tablice:
[0] => 080417.html [1] => 080418.html [2] => 080419.html

I chce wyświetlić:
0.080417.html
1.080418.html
2.080419.html

Ale wyświetla mi tylko numerki. To jest zapewne banalne tylko niestety zaćmienie mam.
<a href='".$pliki[$files]."'>".$nazwa."</a><br/>


--------------------

Go to the top of the page
+Quote Post
webdice
post 6.05.2008, 15:21:14
Post #6


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




  1. <?php
  2. print $nazwa . '.' . $file;
  3. ?>
Go to the top of the page
+Quote Post
potreb
post 7.05.2008, 08:12:12
Post #7





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


Mam jeszcze jedno pytanie. Jak wyświetlić tylko 7 pozycji z tablicy?
  1. <?php
  2. arsort($ddd);
  3. $x = count($ddd);
  4. foreach($ddd as $id => $file)
  5. {
  6. $yr = $file{0}.$file{1};
  7. $mth = $file{2}.$file{3};
  8. $day = $file{4}.$file{5};
  9. $data = "20$yr-$mth-$day"; // dowolna data
  10. $dzien = date("l",strtotime($data));
  11. echo "<a href='".$pliki[$files]."'>"; rep_day($dzien); echo "&nbsp;".$day.".".$mth.".20".$yr."</a><br/>";
  12. }
  13. ?>


--------------------

Go to the top of the page
+Quote Post
sniezny_wilk
post 7.05.2008, 08:18:13
Post #8





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

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


nie jestem pewien, ale dorzucić jakiegoś countera i w if'e sprawdzać jego wartość i dać break ? Lub do biegania po tablicy zrobić fora i zatrzymać odpowiednim warunkiem, lub zrobić tymczasową tablicę i zostawić tylko 7 pozycji: array-splice" title="Zobacz w manualu PHP" target="_manual, array-slice" title="Zobacz w manualu PHP" target="_manual


--------------------
Go to the top of the page
+Quote Post
potreb
post 7.05.2008, 08:52:00
Post #9





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


Warunek if?
Np
  1. <?php
  2. if($id == 7) {
  3. break;
  4. }
  5. ?>


Jeżeli mam 30 elementów w tablicy, a chcę wyświetlić tylko siedem to mi pokaże 23 elementy sortując od najnowszego czyli wg daty. Chyba że id będzie bez sortowania to mi pokaże pierwsze 7.

Ale sorotwanie musi być.
Tak czy tak nie jest dobrze :/


--------------------

Go to the top of the page
+Quote Post
sniezny_wilk
post 7.05.2008, 08:56:21
Post #10





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

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


no jeśli chciałbyś z takiej opcji skorzystać to musiałbyś dać:

  1. <?php
  2. arsort($ddd);
  3. $x = count($ddd);
  4. $counter = 0;
  5. foreach($ddd as $id => $file)
  6. {
  7. if($counter == 7){ //warunek
  8. break;
  9. }
  10. $yr = $file{0}.$file{1};
  11. $mth = $file{2}.$file{3};
  12. $day = $file{4}.$file{5};
  13. $data = "20$yr-$mth-$day"; // dowolna data
  14. $dzien = date("l",strtotime($data));
  15. echo "<a href='".$pliki[$files]."'>"; rep_day($dzien); echo "&nbsp;".$day.".".$mth.".20".$yr."</a><br/>";
  16. $counter++; // zwiększ na końcu
  17. }
  18.  
  19. ?>


Ten post edytował sniezny_wilk 7.05.2008, 08:57:28


--------------------
Go to the top of the page
+Quote Post
potreb
post 7.05.2008, 09:20:04
Post #11





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


Dzięki wilku, właśnie też o tym myślałem tylko w innej wersji


--------------------

Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 6.07.2025 - 23:14