Работа с числами в PHP

Сборник математических функций PHP и примеры их использования.

1

Является ли переменная числом

is_numeric($value) – проверяет, является ли значение или переменная числом или строкой, содержащей число.

is_numeric(1);       // true
is_numeric(0.1);     // true
is_numeric(-1);      // true
is_numeric(-0.1);    // true
is_numeric('1');     // true
is_numeric('1abc');  // false
is_numeric('abc');   // false
PHP

ctype_digit($value) – проверяет, являются ли все символы в строке цифрами.

ctype_digit('123');     // true
ctype_digit('123.10');  // false
ctype_digit('abc');     // false
ctype_digit('1abc');    // false
ctype_digit('abc1');    // false
PHP

is_int($value) – проверяет, является ли значение целым числом.

is_int(1);       // true
is_int(0.1);     // false
is_int(-1);      // true
is_int(-0.1);    // false
is_int('1');     // false
is_int('1abc');  // false
is_int('abc');   // false
PHP

is_float($value) – проверяет, является ли значение числом с плавающей точкой.

is_float(1);       // false
is_float(0.1);     // true
is_float(-1);      // false
is_float(-0.1);    // true
is_float('1');     // false
is_float('1abc');  // false
is_float('abc');   // false
PHP

Целое или число с плавающей точкой

Следующий пример определяет является ли число целым или с плавающей точкой, при этом не проверяет его отрицательность.

$value = 1;

if (is_int($value)) {
	echo 'Целое число';
} elseif (is_float($value)) {
	echo 'Число с плавающей точкой';
} else {
	echo 'Не число';
}
PHP

Положительное или отрицательное

$value = 1;

if ($value == abs($value)) {
	echo 'Число положительное';
}

if ($value != abs($value)) {
	echo 'Число отрицательное';
}
PHP

Чётное или нечётное

$value = 100;

if (($value % 2) == 0) {
	echo 'Число чётное';
}

if (($value % 2) != 0) {
	echo 'Число не чётное';
}
PHP
2

Преобразование в целое число

(int) 1;       // 1
(int) 0.1;     // 0
(int) -1;      // -1
(int) -0.1;    // 0
(int) '1';     // 1
(int) 'abc';   // 0
(int) '1abc';  // 1
(int) 'abc1';  // 0
PHP

В место (int) можно использовать (intiger). Тоже самое делает функция intval():

intval(1);       // 1
intval(0.1);     // 0
intval(-1);      // -1
intval(-0.1);    // 0
intval('1');     // 1
intval('abc');   // 0
intval('1abc');  // 1
intval('abc1');  // 0
PHP

Преобразование в число с плавающей точкой

(float) 1;       // 1
(float) 0.1;     // 0.1
(float) -1;      // -1
(float) -0.1;    // -0.1
(float) '1';     // 1
(float) 'abc';   // 0
(float) '1abc';  // 1
(float) 'abc1';  // 0
PHP

В место (float) можно использовать (double) или (real) и тоже самое делает функция floatval().

floatval(1);       // 1
floatval(0.1);     // 0.1
floatval(-1);      // -1
floatval(-0.1);    // -0.1
floatval('1');     // 1
floatval('abc');   // 0
floatval('1abc');  // 1
floatval('abc1');  // 0
PHP
3

Функция round($value, $precision) округляет значение до указанных цифр после запятой.

echo round(100001.123456, 2);  // 100001.12
PHP

Функция может окрукруглять значение целой части (числа перед запятой), для этого нужно указать отрицательное значение во втором аргументе.

echo round(25674, -2);  // 25700
PHP

Округление до целого числа в меньшую сторону:

echo floor(100.4);  // 100
echo floor(100.9);  // 100
PHP

Округление до целого числа в большую сторону:

echo ceil(100.4);  // 101
echo ceil(100.1);  // 101
PHP
4

Добавить ведущие нули:

echo sprintf("%06d", 100);   // 000100
echo sprintf("%010d", 100);  // 0000000100
PHP

Удалить ведущие нули:

echo intval('0000000100');  // 100

// Или с помощью ltrim
echo ltrim('0000000100', '0');  // 100
PHP
5

Функция abs($value) – возвращает абсолютное значение (модуль числа), т.е. из отрицательного делает положительное.

echo abs(100);   // 100
echo abs(-100);  // 100

echo abs(1.5);   // 1.5
echo abs(-1.5);  // 1.5
PHP

Сделать число отрицательным:

$value = 10;
$value = -abs($value);

echo $value;  // -10
PHP
6

Инкремент – увеличение значения на единицу, бывает постфиксный и префиксный.

// Постфиксный инкремент
$value = 10;
echo $value++;  // 10
echo $value;    // 11

// Префиксный инкремент
$value = 10;
echo ++$value;  // 11
echo $value;    // 11
PHP

Декремент уменьшает значение на единицу.

// Постфиксный декремент
$value = 10;
echo $value--;  // 10
echo $value;    // 9

// Префиксный декремент
$value = 10;
echo --$value;  // 9
echo $value;    // 9
PHP
7
echo min(6, 0, 1, 10); // 0
PHP

Минимальное значение из массива:

$array = array(6, 0, 1, 10);
echo min($array); // 0
PHP

Минимальное значение, исключая ноль:

function min_not_null(Array $values) {
	return min(array_diff(array_map('intval', $values), array(0)));
}

$array = array(6, 0, 1, 10);
echo min_not_null($array);  // 1
PHP
8
echo max(6, 0, 1, 10);  // 10
PHP

Максимальное значение из массива:

$array = array(6, 0, 1, 10);
echo max($array);  // 10
PHP
9

Возведение в степень:

echo pow(100, 2);  // 10000
PHP

Квадратный корень:

echo sqrt(9);  // 3
PHP

Натуральный логарифм:

echo log(10);  // 2.302585092994
PHP
10
$x = 0.5;

echo sin($x);   // 0.4794255386042
echo cos($x);   // 0.87758256189037
echo tan($x);   // 0.54630248984379

echo asin($x);  // 0.5235987755983
echo acos($x);  // 1.0471975511966
echo atan($x);  // 0.46364760900081
PHP
18.01.2020
21651

Комментарии 1

Andrey Manzadey Andrey Manzadey
19 января 2020 в 16:16
Минимальное значение, исключая ноль:
Вместо array_diff можно использовать array_filter.

, чтобы добавить комментарий.

Другие публикации

Создание товарной накладной в PHPExcel
Пример, как сформировать товарную накладную с помощью библиотеки PHPExcel. В результате получится файл в формате xlsx...
19662
+8
Расчёт средней закупочной или продажной цены
Если речь идет о закупках/продажах одного товара по разным ценам и разным количеством подойдет средняя арифметическая...
2193
0
Расчёт прибыльности за одну единицу товара
Имеем два массива $coming – поступление товара на склад, $sales – продажи. Из них вычислим средние цены закупки и...
1518
0
Проверка данных регулярными выражениями
Сборник регулярных выражений с примерами на PHP для проверки данных из полей форм.
19014
+7
Склонение слов после числительных в PHP
В интернет магазинах, CRM и других сервисах для «правильности» есть необходимость склонять существительных после чисел...
23207
+8
Генерация паролей в PHP
В PHP есть несколько функций для генерации случайного числа, это rand(), mt_rand() и random_int().
22777
+11