Php убрать ведущий ноль

Как удалить все ведущие нули в строке

@NabeelKhan Это не ответило бы на вопрос, который не просит преобразовать строку в целое число. См. Комментарии к ответу Svisstack, почему это не такое уж хорошее решение.

@lonesomeday loneomeday, вы должны внимательно прочитать его вопрос, где он упоминает: «обратите внимание, что число выше было сгенерировано случайным образом». так что они уже целые числа 🙂

Я только что попытался (int) «00009384783473» (случайное число), и мой результат был 2147483647. Однако, если я разыграю его как число с плавающей точкой, похоже, он работает нормально. Странный

В руководстве говорится, что «размер целого числа зависит от платформы, хотя максимальное значение около двух миллиардов является обычным значением (это 32-битная подпись)»

Не странно Целые числа в php доходят до 2 ^ 31, то есть 2147483647. Для любых больших чисел вам придется использовать решение на основе строк lonesomeday.

Может показаться, что приведение к float работает, но в какой-то момент вы получите ошибки округления.

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

Читайте также:  Php cli dev null

Я бы не стал использовать преобразования и арифметику с плавающей точкой для простой строковой задачи. Решение loneomeday будет намного быстрее — в моем тестировании примерно на 60 — 70% быстрее, чем (string) (float).

Не знаю, почему люди используют такие сложные методы для достижения такой простой вещи! И регулярное выражение? Wow!

Вот вам, самый простой и простой способ (как описано здесь: https://nabtron.com/kiss-code/):

$a = '000000000000001'; $a += 0; echo $a; // will output 1 

Это кажется более простым решением, но оно не обрабатывает строки любого размера, как это делают другие ответы. Вы преобразуете строку в целое, а затем возвращаете ее в виде строки — проще просто укоротить строку.

Подобно другому предложению, за исключением того, что он не уничтожит фактический нуль:

вы можете добавить «+» в свою переменную,

$numString = "0000001123000"; echo +$numString; 

Я не думаю, что preg_replace — это ответ. старая нить, но просто случиться с этим сегодня. Литература ltrim и (int) является победителем.

"; echo $fixed_str1 . " Fix1"; echo "
"; echo $fixed_str2 . " Fix2"; echo "
"; echo $fixed_str3 . " Fix3"; echo "
"; echo $actualInt . " Actual integer in string"; //output 0000001123000 Origina 1123 Fix1 1123000 Fix2 1123000 Fix3 1123000 Actual integer in tring

Regex был предложен уже, но не правильно:

Справочная информация по регулярному выражению: сигнал ^ начинает строку, а знак + сигнализирует больше или ни один из предшествующих знаков. Поэтому регулярное выражение ^0+ соответствует всем нулям в начале строки.

Ajay Kumar предлагает простейшее echo + $numString; Я использую их:

echo round($val = "0005"); echo $val = 0005; //both output 5 echo round($val = 00000648370000075845); echo round($val = "00000648370000075845"); //output 648370000075845, no need to care about the other zeroes in the number //like with regex or comparative functions. Works w/wo single/double quotes 

На самом деле любая математическая функция будет принимать число из строки и обрабатывать ее так. Это намного проще, чем любые регулярные выражения или сравнительные функции. Я видел это в php.net, не помню где.

Предполагая, что вы хотите удалить три или более нулей, а ваш пример — одна строка:

 $test_str ="0002030050400000234892839000239074"; $fixed_str = preg_replace('/000+/','',$test_str); 

Вы можете сделать шаблон регулярного выражения подходящим, что вам нужно, если мои предположения не работают.

Ещё вопросы

  • 0 Использование перегруженной функции внутри шаблона с параметром шаблона
  • 1 Bluetooth на 2.0+
  • 1 Сохранить изображение поверх существующего изображения
  • 0 обработчик событий на динамически добавленном элементе не работает с плагином select2
  • 0 Почему `typename` все еще необходимо, даже если тип шаблона объявлен как` class`?
  • 0 Некоторые основные вопросы о JWT (на стороне сервера и клиента)
  • 1 Удаление строки запроса из ServletRequest после того, как она достигает сервлета / фильтра
  • 0 Как отфильтровать `объекты` по значению
  • 0 что такое цель: x86_64-redhat-linux?
  • 0 Как определить некоторые переменные конфигурации
  • 0 Jquery datepicker — не может перейти от ввода текста к вводу даты
  • 0 Как эффективно вставить элементы в карту?
  • 0 Замена нескольких экземпляров слов на .replace
  • 0 Microsoft Visual Studio C ++ 2010 Exp — Компиляция в порядке, но не работает
  • 0 Фокус и перезапись
  • 0 Преобразовать целое число в формат времени, чтобы вы могли рассчитать разницу во времени с ним
  • 0 MySQL не может создать таблицу
  • 0 Пункты меню с разной шириной
  • 1 Не удается найти элемент с помощью Selenium
  • 0 Значение массива не работает
  • 0 Версия OpenGL не печатается
  • 1 Есть ли элегантный способ извлечь отдельные слова из имен переменных в массив?
  • 0 I18n с Angular JS (jlg-i18n) — фильтры даты и валюты не работают (динамическое изменение локали $)
  • 1 Как настроить ESLint, чтобы он запрещал экспорт по умолчанию
  • 0 HTML кодирование и PHP
  • 1 некоторые настройки в VS Code
  • 0 JQuery флажок проблемы
  • 0 HTML-таблица и выравнивание границ
  • 1 Загрузка запрещена с помощью X-Frame-Options: websitename / Register не разрешает кадрирование между источниками в MVC5
  • 0 используя AS3 для отправки данных в php файл
  • 0 Как я могу передать значение радиокнопки с идентификатором из db в текстовое поле
  • 0 PHP массив считывает последовательность
  • 1 Как сделать полосовой показ перед графиком
  • 0 Вставка данных в базу данных через MySQL с использованием Visual Studio в C #
  • 0 Как сгруппировать / разбить этот массив массив в php N
  • 1 Определение CultureInfo свойства с помощью DataAnnotation
  • 1 Как сравнить разницу в многомерных массивах?
  • 0 Как изменить строки со столбцами в матрице с одинаковой шириной?
  • 1 Создайте ссылку на раскадровку в рабочем элементе TFS программно
  • 1 Проблема Xamarin Forms CustomPicker
  • 1 Как удалить дубликаты (различные значения) без первичного ключа
  • 0 Добавление файла в crontab через скрипт php
  • 1 Как получить доступ к зарезервированным словам Beautifulsoup в документе xml на python?
  • 0 jQuery Изменить параметр параметров Объект клонированного элемента
  • 1 Работают ли делегаты C # как функции Excel / User Defined?
  • 0 Автообновление включенной таблицы, необходимо получить значение ячейки выбранной строки
  • 1 Задание пути к классу для JAR-файла Oracle JDBC в сентосах
  • 0 Angular — фиксировать заголовок, пока анимируется представление ngAnimate.
  • 1 Как отключить будущие даты в calendarView [дубликаты]
  • 0 Несколько вставок в цикле codeigniter

Источник

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

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

Проверка переменных

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

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

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

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

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

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

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

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

$value = 1; if (is_int($value)) < echo 'Целое число'; >elseif (is_float($value)) < echo 'Число с плавающей точкой'; >else

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

$value = 1; if ($value == abs($value)) < echo 'Число положительное'; >if ($value != abs($value))

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

$value = 100; if (($value % 2) == 0) < echo 'Число чётное'; >if (($value % 2) != 0)

Привидение к типу

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

(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

В место (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

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

(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

В место (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

Округление

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

echo round(100001.123456, 2); // 100001.12

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

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

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

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

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

Ведущие нули

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

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

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

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

Абсолютное значение

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

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

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

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

Инкремент и декремент

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

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

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

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

Минимальное значение

Источник

PHP УБРАТЬ ВЕДУЩИЙ НОЛЬ

PHP — это язык программирования, который имеет множество функций, позволяющих управлять и обрабатывать различные данные. Когда вы работаете с числами в PHP, иногда числа могут начинаться с ведущего нуля. Такое поведение может быть не всегда корректным в различных контекстах. Чтобы убрать ведущий ноль из числа, можно использовать несколько способов.

Один из способов — это приведение к типу integer:

$number = ‘056’;
$number = (int) $number;
echo $number; //выведет 56

Как видно в данном примере, переменной $number было присвоено значение ‘056’. Затем значение переменной изменено на тип integer, используя приведение типов (int) перед переменной. В итоге, ведущий ноль исчез и в переменной хранится число 56, которое и выводится на экран.

Другой способ — это использование функции ltrim:

$number = ‘056’;
$number = ltrim($number, ‘0’);
echo $number; //выведет 56

В данном примере функция ltrim используется для удаления ведущего нуля из строки. Второй параметр функции указывает, какие символы нужно удалить из начала строки. В данном случае мы удаляем символ «0». Затем значение переменной $number изменяется на полученное результат, и выводится на экран число без ведущего ноля.

Наконец, можно использовать функцию sprintf:

$number = ‘056’;
$number = sprintf(‘%d’, $number);
echo $number; //выведет 56

Функция sprintf используется для форматирования строки. В данном примере мы указываем, что нужно отформатировать переменную $number как тип integer (%d), и затем сохраняем форматированный результат в ту же переменную. Полученный результат выводится на экран, и в нем уже нет ведущего ноля.

ЗАПРЕЩЁННАЯ ИСТОРИЯ: НАСТОЯЩИЙ ВОЗРАСТ ПИРАМИД

automatic logout after 1 minutes of inactive in PHP — how to make auto logout in PHP

Создание PHP веб сайта за 1 час! + Выгрузка на сервер

Позднее статическое связывание PHP — Late static binding

Ведущий ноль в старом конфигураторе

КАК БЕЗ ПЕРЕЗАГРУЗКИ СТРАНИЦЫ СДЕЛАТЬ ЗАПРОС

Локализация сайта при помощи php

Источник

Оцените статью