X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Отделение последней цифры
lesli007
lesli007
Topic Starter сообщение 21.3.2011, 16:40; Ответить: lesli007
Сообщение #1


Из базы данных достаю число. У него нужно узнать последнюю цифру для определения окончания фразы. (Пример: 5раз/2раза). В общем подскажите пожалуйста как вынести последнюю цифру в отдельную переменную
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
sc2r2bey
sc2r2bey
сообщение 21.3.2011, 16:48; Ответить: sc2r2bey
Сообщение #2


все очень просто делается 2-мя стандартными функциями для работы со строками
шаг1 - определяем сколько символов в числе
шаг2 - определяем последнюю цифру

[php]<?
// исходное число
$number = 23540345;
// считаем количество символов в числе
$sum_number = strlen($number);
// получаем последний символ
$last_number = substr($number, $sum_number-1, $sum_number);
echo $last_number;
?>[/php]


--------------------
Заметки о разработке и не только
программирую web и для we
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yury_mw
yury_mw
сообщение 21.3.2011, 17:11; Ответить: yury_mw
Сообщение #3


lesli007,
вот функция, которая делает примерно то, что вам надо:
[php]//выводит строку "год"/"года"/"лет" в зависимости от числового значения возраста, например: "22 года" или "45 лет"
function s_years($age) {
$t1 = $age % 10;
$t2 = $age % 100;
return ($t1 == 1 && $t2 != 11 ? "год" : ($t1 >= 2 && $t1 <= 4 && ($t2 < 10 || $t2 >= 20) ? "года" : "лет"));
}[/php]
Взято из поста на этом форуме: Расчет сколько лет, зная дату рождения, ищу функцию
Думаю, вы сами без труда сможете поправить ее под свой случай.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yury_mw
yury_mw
сообщение 21.3.2011, 19:37; Ответить: yury_mw
Сообщение #4


surfer,
думается, вы немножко переборщили с количеством шагов и функций ;)
Чтобы определить последнюю цифру в десятеричном числе достаточно вычислить остаток от деления этого числа на 10:
[php]<?php
// исходное число
$number = 23540345;
// получаем последнюю цифру
echo $number % 10;
?>[/php]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Eugene_hb
Eugene_hb
сообщение 22.3.2011, 17:11; Ответить: Eugene_hb
Сообщение #5


Одной последней цифры мало.
Например, сравните фразы 2 числа и 12 чисел.
И в том, и в другом случае заканчивается на двойку, но окончания разные.

Поэтому вот более универсальная функция:
[php]function declination_by_num($num, $values)
{
$num = $num % 100;
if ($num >= 5 && $num <= 20) {
return $values[2];
}
$num = $num % 10;
if ($num == 1) {
return $values[0];
}
if ($num >= 2 && $num <= 4) {
return $values[1];
}
return $values[2];
}[/php]

Параметры:
$num - число, относительно которого нужно выбрать склонение существительного
$values - массив с вариантами написания существительного:
- $values[0] - для *1 (1 число, 21 число и т.д.)
- $values[1] - для *2, *3 и *4 (2 числа, 24 числа и т.д.)
- $values[2] - для остальных случаев (5 чисел, 17 чисел и т.д.)

Возвращает соответствующий элемент массива $values
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yury_mw
yury_mw
сообщение 22.3.2011, 17:57; Ответить: yury_mw
Сообщение #6


EugeneM,
вы сообщение #3 читали? ;)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 22.3.2011, 20:12; Ответить: ZiTosS
Сообщение #7


Улыбнуло :) У каждого свой вариант решения задачи.

lesli007, для работы с числами правилен вариант остатка от деления числа на декады, который вам предложили ;)

P.s. Для разных слов разные формы нужно составлять...

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Доработка сайта на Joomla, обновления движка до последней версии
0 Marie_hb 2301 30.10.2013, 15:48
автор: -Marie-
Открытая тема (нет новых ответов) Качественный прогон лицензионным XRumer'ом последней версии по профилям (форумы,
0 madara1592 1728 8.8.2012, 12:02
автор: madara1592


 



RSS Текстовая версия Сейчас: 29.3.2024, 8:43
Дизайн