![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 0 Dołączył: 17.05.2019 Ostrzeżenie: (0%) ![]() ![]() |
Witam (IMG:style_emoticons/default/biggrin.gif)
Mam kod, który ma wyszkać znak "1". ECHO wyrzuca aż 8 jedynek a mi zależy aby wyszukał tylko "1" jako znak pojedyńczy czyli powinno ECHO wyrzucać "1". Jakieś wskazówki ? <?php echo substr_count("1,2,3,4,5,6,7,8,9,10,11,12,13,14,15","1"); ?> |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Skoro używasz funkcji która zlicza ilość wystąpień w ciągu to czego oczekujesz?
Użyj np https://www.php.net/manual/en/function.stristr.php |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 594 Pomógł: 66 Dołączył: 22.02.2008 Skąd: Dublin Ostrzeżenie: (0%) ![]() ![]() |
Witam (IMG:style_emoticons/default/biggrin.gif) Mam kod, który ma wyszkać znak "1". ECHO wyrzuca aż 8 jedynek a mi zależy aby wyszukał tylko "1" jako znak pojedyńczy czyli powinno ECHO wyrzucać "1". Jakieś wskazówki ? <?php echo substr_count("1,2,3,4,5,6,7,8,9,10,11,12,13,14,15","1"); ?> to tablica czy string? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 0 Dołączył: 17.05.2019 Ostrzeżenie: (0%) ![]() ![]() |
Tablica
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 105 Dołączył: 7.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Skoro to tablica (tzn. ten string 1,2,3,...,15) no to użyj https://www.php.net/manual/en/function.arra...ount-values.php
A jeśli to jednak string, to przed powyższą funkcją przekształć tego stringa na tablicę za pomocą explode() używając przecinka jako separatora. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 0 Dołączył: 17.05.2019 Ostrzeżenie: (0%) ![]() ![]() |
stristr to raczej nie jest dobry pomysł. To nie jest to czego oczekuje.
Tu podaje przykład: <?php $liczba = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15"; echo stristr($liczba, '14'); ?> Ten post edytował Zenobiusz 27.08.2019, 09:58:20 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
No i działa prawidłowo. Sprawdziłeś że string występuje w ciągu. Co więcej oczekujesz ?
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 0 Dołączył: 17.05.2019 Ostrzeżenie: (0%) ![]() ![]() |
Z tablicy zbyt dosłownie wyciąga wszystkie cyfry a mi nie o to chodzi. Jeżeli poproszę aby z tablicy wyliczono ile jest 1 przy ciągu liczb 1,2,3,4,5,10,11 to echo pokaże że są 4 jedynki, a ma pokazać że 1 bo faktycznie jest tylko jedna jedynka jako liczba. Z funkcją ARRAY jest już inaczej i to właśnie tutaj jest rozwiązanie.
<?php $array = array(1, 31, 11, 42, 2); print_r(array_count_values($array)); ?> Ten post edytował Zenobiusz 27.08.2019, 12:14:42 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 879 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
Może tego oczekujesz?
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Z pierwszego postu wynika że chcesz sprawdzić czy występuje chociaż raz. Tym sposobem to sprawdzisz. Liczbę masz bo po niej szukasz. Czy występuje sprawdza funkcja. Dlatego nie rozumiem problemu.
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 0 Dołączył: 17.05.2019 Ostrzeżenie: (0%) ![]() ![]() |
strpos pokazuje pozycje znaku w ciągu. Z Twojego ciągu jeżeli zapytam się o liczbę 14 to z mojego oczekiwania powinno się pojawić że 14 są dwie. :-)
Viking. No własnie w tym problem że jeżeli się zapytam o np 14 jw. w ciągu to nie pokazuje że są dwie liczby 14 tylko wyliczy wszystkie czwórki i jedynki. Ten post edytował Zenobiusz 27.08.2019, 12:39:28 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Definicja funkcji jest jasna: Returns all of haystack starting from and including the first occurrence of needle to the end.
Twoje pytanie: Mam kod, który ma wyszkać znak "1". Jakie pytanie taka odpowiedź. |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 1 879 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
Już nie mówiąc, że nie informujesz nas czy dane wejściowe są standaryzowane, bo może lepiej pobawić się funkcją explode() i funkcjami do szukania elementów tablicy.
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 594 Pomógł: 66 Dołączył: 22.02.2008 Skąd: Dublin Ostrzeżenie: (0%) ![]() ![]() |
Witam (IMG:style_emoticons/default/biggrin.gif) Mam kod, który ma wyszkać znak "1". ECHO wyrzuca aż 8 jedynek a mi zależy aby wyszukał tylko "1" jako znak pojedyńczy czyli powinno ECHO wyrzucać "1". Jakieś wskazówki ? <?php echo substr_count("1,2,3,4,5,6,7,8,9,10,11,12,13,14,15","1"); ?>
Ten post edytował dublinka 28.08.2019, 08:34:09 |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 0 Dołączył: 17.05.2019 Ostrzeżenie: (0%) ![]() ![]() |
Z funkcją explode tak łatwo nie pójdzie.
Dziękuje Dublinka. :-) Ten post edytował Zenobiusz 28.08.2019, 11:39:06 |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 594 Pomógł: 66 Dołączył: 22.02.2008 Skąd: Dublin Ostrzeżenie: (0%) ![]() ![]() |
Mozna tez troche dookola:
I wersja z explode:)
Oczywiscie te dwa przyklady sa bardzo pobobne bo w drugim zamiast uzyc pobrania od razu w petli => $value bawimy sie list-em i explode. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 14:07 |