Autor Zpráva
JitkaS
Profil *
Potřebuji rozdělit dvojciferná čísla například 23 na 2 a 3 tj. zvlášť. V případě, že tam bude jen jednociferné číslo například 9, tak vypsat 0 a 9.

Jak toho mohu docílit?
Tomášeek
Profil
JitkaS:
Á, domácí úkol :-) Tak zkus zavzpomínat, co jste si říkali, třeba si na něco vzpomeneš. Aspoň trochu snahy by to chtělo projevit.
JitkaS
Profil *
Vydělit 10-ti a na rozdělení pak použít explode :)

Jop, díky za radu.
Taps
Profil
JitkaS:
deleni je zbytecny
JitkaS
Profil *
Tak, pak nevím :( Za radu budu moc ráda.
pcmanik
Profil
JitkaS:
$number = '23';

echo $number[0];

Koľko znakov je v stringu snaď vieš zistiť a ošetriť si teda tak jednociferné číslo.
JitkaS
Profil *
Jak se dá použít if přímo v echo? Tj. pokud $number[1]; bude prázdný, vypíše se nula.
mckay
Profil
JitkaS:
Krok č. 1 by měl být zajistit, že to číslo, například 23 bude typu string, jinak nemůžeš indexovat jako $promenna[0]. Pokud to máš jako string, jsi v pohodě, pokud ne, můžeš to přetypovat buď napřímo $promenna = (string) $promenna; nebo pomocí funkce settype.

Pak buď uděláš
if (isset($promenna[1]))
{
 echo $promenna[0] . " " . $promenna[1];
}
else
{
 echo 0 . $promenna[0];
}

Nebo to víceméně může provat i do toho echa stylem:
echo (isset($promenna[1]) ? ($promenna[0] . " " . $promenna[1]) : 0 . $promenna[0]);
weroro
Profil
Skúsil by som to takto (aby to nebolo dokonale napísané):
function rozdelCisla($ciselnyVstup)
{
    $vystup = '';
    if (!isset($ciselnyVstup) || !is_numeric($ciselnyVstup)) return $vystup;
    $cislo = trim((string)$ciselnyVstup);
    for ($i = 0; $i < strlen($cislo); $i++) {
        if (strlen($vystup)) $vystup .= ' ';
        $vystup .= $cislo[$i];
    }
    if (strlen($vystup) < 2) $vystup = '0 ' . $vystup;
    return $vystup;
}

var_dump(rozdelCisla('123')); // "1 2 3"
var_dump(rozdelCisla('45')); // "4 5"
var_dump(rozdelCisla('9')); // "0 9"
var_dump(rozdelCisla('123456')); // "1 2 3 4 5 6"
var_dump(rozdelCisla('65c4')); // "" Nevypíše nič
Alphard_
Profil *
weroro:
aby to nebolo dokonale napísané
Okej, tento aspekt je splněn. Ještě by na to šlo napsat vlastní framework.

JitkaS [#1]:
Elegantně můžeš použít str_pad() k vyrovnání se s jednocifernými čísly. A pak buď přímo indexovat, nebo třeba str_split(). PHP má hodně vestavěných funkcí, projdi si je, je to užitečné.
Keeehi
Profil
Na doplnění čísla nulami se dá také použít sprintf.

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: