Autor Zpráva
Roman111
Profil *
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 *
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
Roman111:
<?
$str = '100 jablek';
preg_match_all('!\d+!', $str, $matches);
print_r($matches);
?>
juriad
Profil
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 *
"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 *
[#4] Taps Díky! Přesně tohle jsem potřeboval.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0