PHP удаляет первые нули


Хотите удалить все 0, размещенные в начале некоторой переменной.

Некоторые варианты:

  1. если $var = 0002, мы должны сначала раздеться 000 ($var = 2)
  2. если var = 0203410 мы должны сначала удалить 0 ($var = 203410)
  3. если var = 20000 - ничего не делать ($var = 20000)

Каково же решение?

Author: drAlberT, 2010-08-25

7 answers

Приведите его к целому числу

$var = (int)$var;
 53
Author: drAlberT, 2010-08-25 07:35:50

Может быть ltrim?

$var = ltrim($var, '0');
 14
Author: robertbasic, 2010-08-25 07:35:46
$var = ltrim($var, '0');

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

 8
Author: Lekensteyn, 2010-08-25 07:36:02
$var = strval(intval($var));

Или, если вам все равно, останется ли это строкой, просто преобразуйте в int и оставьте все как есть.

 3
Author: Amber, 2010-08-25 07:35:54

Просто используйте + внутренние переменные:

echo +$var;
 2
Author: poostchi, 2014-06-15 18:05:44

Внимательно относитесь к типу литья;

var_dump([
    '0014010011071152',
    '0014010011071152'*1,
    (int)'0014010011071152',
    intval('0014010011071152')
]);

Печать:

array(4) {
    [0]=> string(16) "0014010011071152"
    [1]=> float(14010011071152)
    [2]=> int(2147483647)
    [3]=> int(2147483647)
}
 0
Author: Martijn Hoogstraten, 2018-05-04 13:41:54

Умножьте его на 1

$var = "0000000000010";
print $var*1;  

//prints 10
 0
Author: Jhourlad Estrella, 2018-07-20 08:14:01