Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Tablice
Forum PHP.pl > Forum > Przedszkole
potreb
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.
webdice
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.
potreb
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 :/
webdice
  1. <?php
  2. substr ($file, 0, -5)
  3. ?>


O to chodzi?
potreb
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/>
webdice
  1. <?php
  2. print $nazwa . '.' . $file;
  3. ?>
potreb
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. ?>
sniezny_wilk
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
potreb
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 :/
sniezny_wilk
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. ?>
potreb
Dzięki wilku, właśnie też o tym myślałem tylko w innej wersji
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.