Autor | Zpráva | ||
---|---|---|---|
Roman111 Profil * |
#1 · Zasláno: 26. 1. 2015, 10:34:39
Ahoj,
mám řetězec např. "100 jablek", "1 000 hrušek..." jak z něj získám pouze to číslo? Napadá mě použití str_replace, ale přijde mi to strašně složité, není nějaká lepší funkce? Díky. |
||
anonymníí Profil * |
#2 · Zasláno: 26. 1. 2015, 10:40:31
Roman111:
preg_match, nebo preg_replace. |
||
lionel messi Profil |
Roman111:
„mám řetězec např. "100 jablek", "1 000 hrušek..." jak z něj získám pouze to číslo?“ Myslím, že postačí jednoduchý trik s pretypovaním: <?php $text = "100 jablek"; $cislo = intval($text); echo $cislo; //vráti 100 ?> Pozor, platí iba ak je číslo bezprostredne na začiatku reťazca (inak bude vracať 0). Inak viď [#2]. |
||
Taps Profil |
#4 · Zasláno: 26. 1. 2015, 10:55:03
Roman111:
<? $str = '100 jablek'; preg_match_all('!\d+!', $str, $matches); print_r($matches); ?> |
||
juriad Profil |
#5 · Zasláno: 26. 1. 2015, 11:01:48
Roman111:
Jaký má být výsledek v případě "1 000 hrušek"? Má to být číslo 1, nebo číslo 0, nebo dvojice (1, 0), nebo číslo 1000? Jaká jsou přesná pravidla pro poznání čísla? (ve významu teček, čárek, mezer) Například: Číslo je nejdelší souvislá sekvence číslic a mezer. Číslo začíná a končí číslicí. |
||
Roman111 Profil * |
#6 · Zasláno: 26. 1. 2015, 12:32:20
"1 000 hrušek" by mělo vrátit číslo 1000, mezery si odstraním pomocí str_replace.
Potřebuji získat kladná celá čísla. Díky! |
||
juriad Profil |
Snad něco jako:
<?php $text="1 000 hrušek; 100 jablek; 1 mandarinka; 10 a 10 melounů, 1 5 3meruňek a švestek8"; preg_match_all('/\d(?:[\d ]*\d)?/', $text, $nalezy); var_dump($nalezy[0]); # zajímá nás jen index 0 |
||
Roman111 Profil * |
#8 · Zasláno: 26. 1. 2015, 14:18:53
[#4] Taps Díky! Přesně tohle jsem potřeboval.
|
||
Časová prodleva: 9 let
|
0