Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem ze zmienna tablicowa i formatowanie tekstu
Forum PHP.pl > Forum > Przedszkole
kakon
Witam, chce stworzyc kod który ze zmiennej pojedynczej lub tablicy wypisze na ekranie pewien ciag znaków uzywajac do tego wartosci z tej wlasnie zmiennej/tablicy:
np jeśli zmienna ma 1 element wypisze go normalnie jeśli ma:
2 elementy: "$element1 oraz $element2"
3 elementy: "$element1, $element2 oraz element3"
4 elementy: "$element1, $element2, $element3 oraz element4" ....
.... i tak dalej i tak dalej smile.gif

przykladowa zmienna tablicowa która może wystąpić:
  1. [String] => Array
  2. (
  3. [0] => poniedzialek
  4.  
  5. [1] => wtorek
  6.  
  7. [2] => sroda
  8. [3] => czwartek
  9. )


Prosił bym o jakieś wskazówki jak napisać kod który obsłuzy to i bedzie uniwersalny. Naprawde nie mam pomyslów.
manhunto
Nie wiem czy dobrze Cie zrozumiałem, ale chodzi Ci ze jak np podasz tablice która ma 4 elementy, to wypisze 4, jak ma 123 elementy to wypisze je wszystkie 123?
Jeśli tak to wystarczy zastosować pętle foreach
  1. function wypisz($tablica){
  2. foreach($tablica as $key => $value){
  3. echo $value." ";
  4. }
  5. }
  6. $tab = array(1 => 'poniedzialek', 2 => 'wtorek', 3 => 'sroda', 4 => 'czwartek');
  7.  
  8. wypisz($tab);
co zwróci nam: poniedzialek wtorek sroda czwartek
kakon
coś takiego tylko żeby pomiędzy rekordami w wypisaniu był "," oraz pomiędzy przed ostatnim a ostatnim rekordem pojawiło sie słowo np "oraz"
przykład:
Jeśli tablica ma 1 element wypisze go normalnie jeśli ma:
2 elementy: "$element1 oraz $element2"
3 elementy: "$element1, $element2 oraz element3"
4 elementy: "$element1, $element2, $element3 oraz element4" ....
Crozin
Jeżeli tablica ma co najmniej 2 elementy, to Wszystkie poza ostatnim elementem (array_slice) połącz przecinkiem (implode), dołącz napis "oraz+ oraz ostatni element tablicy (end).
manhunto
Tak jak Crozin napisał:
  1. function wypisz($tablica){
  2. $string = "";
  3. if(count($tablica) > 1){
  4. $pom = array_slice($tablica,0,-1 );
  5. $string .= implode(", ", $pom);
  6. $string .= " oraz ".end($tablica).".";
  7. }
  8. else{
  9. $string .= reset($tablica);
  10. }
  11.  
  12. return $string;
  13. }
  14. $tab = array(1 => 'poniedzialek', 2 => 'wtorek', 3 => 'sroda', 4 => 'czwartek');
  15.  
  16. echo wypisz($tab);
zwróci: poniedzialek, wtorek, sroda oraz czwartek.
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.