Удаление ведущего 0?

Есть ли простой способ удалить ведущий ноль (например, если 01 становится 1)?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
0
3 427
5

Ответы 5

$str = "01";
echo intval($str);

Возможно, стоит поместить вокруг него блок is_numeric (), чтобы отловить случаи, когда $ str не является числом, поскольку intval возвращает 0 в случае ошибки: fr.php.net/manual/en/function.intval.php

Michael Stum 01.12.2008 18:36

Просто умножьте на 1

echo "01"*1

Работает, но только до тех пор, пока строка является числом. :-)

Tomalak 01.12.2008 17:19

это серьезный ответ? Я не могу сказать.

Jeff Atwood 01.12.2008 18:10

Классический трюк с добавлением арифметических вычислений, которые не изменяют исходное значение, для создания компилятора, приведения в соответствие с числовым значением! ;)

Stefan 01.12.2008 18:17

@ Джефф Этвуд: Полагаю, это серьезный ответ. Так много программистов PHP самоучки и знают, как выполнить работу, а не как ее выполнить Правильно. @ J.D. Фитц.Джеральд: Извини, что тебя преследуют. Это действительно бесит специалистов по CS. Это не явное решение проблемы.

Lucas Oman 01.12.2008 18:52

@epochwolf - почему это не лучший способ? Ранее я рекомендовал $ str_value + 0 преобразовывать число в строке в число.

staticsan 02.12.2008 08:40

Regex заменяет /^0*/ на '' для решения возврата строки

Точный код будет примерно таким

<?php
 $string_number = '000304';
 echo preg_replace('/^0*/', '', $string_number);
?>

Вы можете использовать функцию ltrim:

ltrim($str,"0");

Хотя это работает в случаях, когда вы хотите удалить несколько ведущих нулей, в некоторых случаях это не то, что вам нужно. Например, попытка сделать это со значением «00» приведет к «», тогда как функция intval, предложенная ниже, даст правильное значение «0».

quickthyme 23.07.2014 02:15

если вы используете функции обрезки, вы можете по ошибке удалить какой-либо другой символ, например, обрезав «12», у вас будет «2». используйте функцию intval (). эта функция преобразует вашу строку (которая может начинаться с нуля в начале или без него) в целочисленное значение. intval ("02") будет 2, а intval ("32") будет 32.

Однако, если вы, например, используете intval(011), вы получите 9 вместо 11. Правильный ответ - ltrim($str,"0");.

Waiyl Karim 01.10.2014 05:56

@WaiylKarim: передача 011 в intval () возвращает 9, потому что мы передаем числовое число 011, которое является восьмеричным числом для 9 (0 означает восьмеричное, 1 * 8 + 1 = 9), которое вернет десятичное число 9. Но если мы передадим "011" "(строковый аргумент) он вернет 11, что соответствует желаемому результату. итак: intval (011) -> 9; intval ('011') -> 11; :)

farzad 01.10.2014 09:34

+1 за ваше объяснение. Это то, о чем я думал, однако я не знал, что передача его в виде строки вернет тот же желаемый результат, я думал, что он проигнорирует это. В этом случае мы можем использовать ltrim((string)$number, "0")); для большей безопасности, потому что иногда мы не всегда получаем данные в виде строки.

Waiyl Karim 02.10.2014 03:03

Другие вопросы по теме