Skocz do zawartości

[PHP] Rozbicie tablicy


Mar

Rekomendowane odpowiedzi

Witam,

Mam tablicę składającą się z samych słów rozdzielone przecinkiem, wszystkie małe litery,

i chciałbym rozbić ją w ten sposób, by w jednym miejscu te słowa były z dużej litery w innym z małej.

Napisałem coś takiego:

$array = explode( ',', $tablica);
				foreach( $array as $a )
					{
						$newArray[] = 'z malej:"'.ucfirst($a).'" z dużej:'.$a.''; 
					}
				$nowatablica = implode( ', ', $newArray );

..niestety podany kod, działa tylko na pierwszym elemencie, pozostałe są bez zmian, dlaczego tak jest?

Mar.

Polecam katalog SeoPark.pl, katalog AK47 (5 lata w sieci) ...oraz Wirtualne-miasta.eu
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem

Odnośnik do komentarza
Udostępnij na innych stronach

Na pierwszy rzut oka wyglada ok, tylko

$newArray[] = 'z malej:"'.ucfirst($a).'" z dużej:'.$a.'';

powinno byc

$newArray[] = 'z malej:"'.$a.'" z dużej:'.ucfirst($a).'';

zastanawiam mnie tez to:

$array = explode( ',', $tablica);

bo jako argument podajemy string a nie tablice :(

pozycjonuj.png
Odnośnik do komentarza
Udostępnij na innych stronach

powinno byc
.. chodzi o ideę :(
zastanawiam mnie tez to (..)
mój błąd, jest tam zmienna ze stringiem.

Problem w tym, że jak to później wyświetlam, to tylko pierwszy element tablicy ma dużą pierwszą literę, czyli:

$zmiena2 = implode( ', ', $newArray );

Mar.

Polecam katalog SeoPark.pl, katalog AK47 (5 lata w sieci) ...oraz Wirtualne-miasta.eu
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem

Odnośnik do komentarza
Udostępnij na innych stronach

Witaj,

problem tkwi w

$array = explode( ',', $tablica);

Dlaczego? Otóż, kolejne pola tablicy to słowa, ale ze spacją na początku - zakładam, że Twoja zmienna, którą

explodujesz to coś w stylu:

$string = "word1, word2, word3";

Czyli słowa oddzielone są ", " - tej spacji nie widać, ale to na niej działa ucfirst();

Tak więc, na prawdę wszystko działa dobrze - pierwszy wyraz w Twoim stringu nie jest poprzedzony spacją, dlatego ucfirst() zwiększa pierwszy znak na wielki.

Tak więc, albo zmień

$array = explode( ',', $tablica);

na

$array = explode( ', ', $tablica);

albo zrób na początku

$string = str_replace(", ", ",", $string);

Działa?

Pozdrawiam

Gwarantowany efekt. 100% satysfakcji lub zwrot gotówki. Tylko teraz profesjonalne pozycjonowanie książek na Twojej półce. 20% zniżki jeżeli masz różową i prostą (wypozycjonowaną) ścianę. Nie pozycjonujemy stron w Google.

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki, nie wpadł bym na to.. funkcja ltrim bardzo się przydała.

Słowa są zapisywane w postaci "slowo1, slowo2, slowo3", więc logiczne, czemu działał tylko na pierwszym słowie.

Mar.

Polecam katalog SeoPark.pl, katalog AK47 (5 lata w sieci) ...oraz Wirtualne-miasta.eu
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności