Php 比较以0开头的数字的数字大小?

Php 比较以0开头的数字的数字大小?,php,comparison,Php,Comparison,我试图在大小方面相互比较数字,并选择最接近(最大)的值 例如,我有一个数字数组:054105550789 电话号码:0547 在这种情况下,0555是我想要的号码 我的代码适用于所有不是以0开头的数字,但在上面的示例中它失败了 有什么想法吗 编辑:本应明确指出,并非所有数字都以0开头,并且要比较的数字是时间,因此是否仍然可以从时间中删除零?如果您的数字以0开头,它将作为字符串进行比较。使用intval()进行比较之前,请将数字转换为整数。如果您的数字以0开头,则会将其作为字符串进行比较。在使用i

我试图在大小方面相互比较数字,并选择最接近(最大)的值

例如,我有一个数字数组:054105550789

电话号码:0547

在这种情况下,0555是我想要的号码

我的代码适用于所有不是以0开头的数字,但在上面的示例中它失败了

有什么想法吗


编辑:本应明确指出,并非所有数字都以0开头,并且要比较的数字是时间,因此是否仍然可以从时间中删除零?

如果您的数字以
0开头,它将作为字符串进行比较。使用
intval
()

进行比较之前,请将数字转换为整数。如果您的数字以
0
开头,则会将其作为字符串进行比较。在使用
intval
()

进行比较之前,将数字转换为整数,或者从左到右逐个比较每个数字,注意八进制数字@MichaelBerkowski-有趣的一点,但即使是八进制也会以正确的顺序结束。我认为PHP会确保在比较之前将两个不同基数的数字转换为一个公共基数:)或者从左到右分别比较每个数字——小心八进制数字@MichaelBerkowski-有趣的一点,但即使是八进制也会以正确的顺序结束。我认为PHP会确保在比较之前将不同基数中的两个数字转换为一个公共基数:)它不会被视为8进制(八进制)数字吗?那么012=12月10日不是吗?当然,如果它们没有引号(作者没有提到)
intval
会将数字转换为整数(以10为基数),而不考虑前导指示符,除非您提供可选的基数参数。它不会被视为以8为基数(八进制)的数字吗?那么012=12月10日不是吗?当然,如果它们不带引号(作者没有提到)
intval
将把数字转换为整数(以10为基数),而不考虑前导指示符,除非您提供可选的基数参数。