【问题标题】:Yii-2 Unable to format a number with leading zeros in PHPYii-2 无法在 PHP 中格式化带前导零的数字
【发布时间】:2017-11-20 06:59:10
【问题描述】:

使用this 解决方案。我正在尝试格式化带有前导零的数字。长度为 12 位。开头是00000000001,如果数字是10,那么000000000010等等。 我在下面尝试过

 OGP-<?php $model=$dataProvider->getModels()[0]; 
 str_pad($model['OGP_Serial_No'], 12, '0', STR_PAD_LEFT)?>

但它给了我空的结果OGP-

我怎样才能做到这一点?

任何帮助将不胜感激。

【问题讨论】:

  • str_pad() 的结果无处可去。您需要先将结果保存到变量或回显结果。
  • OGP-&lt;?php $model=$dataProvider-&gt;getModels()[0];$value = implode(',', $model); str_pad($value, 12, '0', STR_PAD_LEFT)? 仍然给出空结果

标签: php yii2 numbers format


【解决方案1】:

试试这个

<?php 
if(isset($dataProvider->getModels()[0]) && $dataProvider->getModels()[0] != array()){

    $model = $dataProvider->getModels()[0]; 
    $OGP_Serial_No = $model['OGP_Serial_No'];
    $myNumber = "OGP-".str_pad($OGP_Serial_No, 12, '0', STR_PAD_LEFT);

}else{
    $myNumber = "OGP-".str_pad(1, 12, '0', STR_PAD_LEFT);
}
echo $myNumber;
?>

【讨论】:

  • 乐于助人 :) @MrFaisal
【解决方案2】:

尝试检查真实内容,例如:使用 var_dump()

<?php 
      $models = $dataProvider->getModels(); [0]; 
      $myString  = 'OGP-' . str_pad( $models[0]['OGP_Serial_No'] , 12, '0', STR_PAD_LEFT); 
      var_dump($myString);
?>

【讨论】:

    猜你喜欢
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 2011-11-16
    • 1970-01-01
    • 1970-01-01
    • 2015-10-24
    相关资源
    最近更新 更多