Skocz do zawartości

[PHP] Rozbicie tablicy


Mar
 Udostępnij

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 :(

Edytowane przez AdSenseLab
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.

Edytowane przez 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

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
 Udostępnij

  • 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