如何阻止PHP取整我的条形码号码

如何阻止PHP取整我的条形码号码,php,arrays,barcode,rounding,Php,Arrays,Barcode,Rounding,我在数组中有一些条形码号码。PHP似乎在对以前导零开始的条形码进行舍入。我如何阻止这种情况发生并保持数字不变?我使用的代码如下: $array = array(5032227448124,5060028999989,5010121096504,5060028999996,5016254104864,5016402052788,8422248036986,0000003798720,0000003735503,0000003798713); echo '<pre>'; print_r

我在数组中有一些条形码号码。PHP似乎在对以前导零开始的条形码进行舍入。我如何阻止这种情况发生并保持数字不变?我使用的代码如下:

$array = array(5032227448124,5060028999989,5010121096504,5060028999996,5016254104864,5016402052788,8422248036986,0000003798720,0000003735503,0000003798713);

echo '<pre>';
print_r($array);
echo '</pre>';
$array=array(503222744812450600289999895010121096504502899965016254104486450164020527842224803698600000379872000000037355000003798713);
回声';
打印(数组);
回声';
这与以下内容相呼应,正如您所看到的,具有前导零的最后四个条形码已被更改,并且前导零已被删除。这些数字总是13位长,并用零填充

printf('%013d', 12345); // output: 0000000012345
排列 ( [0] => 5032227448124 [1] => 5060028999989 [2] => 5010121096504 [3] => 5060028999996 [4] => 5016254104864 [5] => 5016402052788 [6] => 8422248036986 [7] => 31 [8] => 1030979 [9] => 31 [10] => 1031004 )
如果它们不是数字(整数、浮点、指数),则需要将它们作为字符串引用

  • 一个显而易见的、简单的、也可能是错误的答案是让它们成为字符串
  • 更好的答案是使用/填充零:

    SELECT LPAD(12345, 13, 0) // output 0000000012345
    
  • MySQL还有一个方便的功能:

    $array = array_map(function ($e){return str_pad($e, 13, "0", STR_PAD_LEFT);}, $array);
    

  • 以下是将值转换为填充字符串的简单方法:

     $array = array("5032227448124","5060028999989","5010121096504","5060028999996","5016254104864","5016402052788","8422248036986","0000003798720","0000003735503","0000003798713");
    

    最后,我只需要在每个条形码编号周围加上双引号,例如


    只是澄清一下——不需要双引号,单引号也可以。此外,这应该是对我的回答的评论,因为你选择了我的回答作为被接受的答案,而且这基本上就是你所做的:-)
     $array = array("5032227448124","5060028999989","5010121096504","5060028999996","5016254104864","5016402052788","8422248036986","0000003798720","0000003735503","0000003798713");