как я могу получить цифры из двух цифр? - PullRequest
2 голосов
/ 29 октября 2009

Я хочу получить одну цифру из двух цифр. Например, если 36, мне нужно хранить 3 и 6 в разных переменных. Возможно ли это?

Ответы [ 6 ]

7 голосов
/ 29 октября 2009

Вы решаете это с помощью простой математики.

Прежде всего, подумайте о том, что на самом деле 36, если разбить его, его 3 * 10 + 6, верно?

Таким образом, первая цифра в этом случае представляет ваши 10 раз, которые вы получите, разделив на 10:

36 / 10 = 3.xxxxx

Теперь, если вы округлите, вы получите 3, что является первой цифрой.

Как насчет остального? Ну, для этого вы должны использовать что-то под названием по модулю , что иногда бывает трудно понять. Но он по сути убирает остатки целочисленного деления.

Это означает, что когда вы делаете 36 % 10, вы получаете 6. Почему вы так думаете? Попробуйте открыть калькулятор и нажмите на цифры: 36 / 10 = 3.6, осталось за кадром 6!

Код решения

<?php
    $theNumber = 36;

    $first = floor($theNumber / 10);

    $second = $theNumber % 10;    
?>

Здесь вы можете посмотреть функцию floor.

Альтернативное решение для разделения строк

Если вы ищете альтернативные способы разделения строк в PHP, вы можете использовать str_split , это предоставит вам массив символов.

* ** 1038 тысяча тридцать семь * Пример
<?php
    $myString = "36 is my number";

    $splittedString = str_split($myString);

    echo $splittedString[0];
    echo $splittedString[1];
?>

Просто используйте это как массив

3 голосов
/ 29 октября 2009

в основном

"струнный" способ

$s = (string) $i;
$one = $s[0];
$two = $s[1];

"математический" способ

$two = $i % 10;
$one = ($i - $two) / 10;
1 голос
/ 29 октября 2009

Строка может быть доступна как массив. Если вы преобразуете свой номер в строку (или если он уже один - вы не упоминаете), вы можете адресовать цифры по отдельности, а затем при желании преобразовать их обратно в целые числа:

$num = strval(36);

echo intval($num[0]); // 3
echo intval($num[1]); // 6
1 голос
/ 29 октября 2009

Один из способов :

// Accessing single characters in a string
// can also be achieved using "square brackets"
$string = 'abcdef';
echo $string[0];                 // a
echo $string[3];                 // d
echo $string[strlen($string)-1]; // f
1 голос
/ 29 октября 2009

Таким образом:

$int = 36;
$str = (string)$int;
var_dump($str[0], $str[1]);
0 голосов
/ 29 октября 2009

Это не код PHP! (Не увидел тег)

int num = 36;
int first = num / 10; // 3
int second = num % 10; // 6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...