我需要在字符串之前添加零,该字符串本质上是一个数字但可以是任何长度。如果字符串的长度可以变化,如何使用sprintf来实现此目的。
以下是我正在处理的代码
// $SKU is the array containing skus which has both numeric and alpha numeric values.
// I want to add zero only before those which starts with a number.
foreach ( $SKU as $key ) {
$sku_first_char = $key[0]; // get the first character of the string.
if( is_numeric( $sku_first_char) ) { //if it is a number
$num_padded = sprintf("CODE HERE"); //prepend it with a zero
}
echo $num_padded. '</br>';
}
答案 0 :(得分:0)
foreach ( $SKU as $key ) {
$sku_first_char = $key[0]; // get the first character of the string.
if( is_numeric( $sku_first_char) ) { //if it is a number
$key = "0" . $key; //prepend it with a zero
}
echo $key. '';
}
不需要sprintf
。
答案 1 :(得分:0)
只是为了它的地狱:
$num = sprintf(sprintf('%%0%dd', strlen($num) + 1), $num);
这使用sprintf
将0
的数字填充到特定长度,通过sprintf
表达式将长度动态设置为比数字长度多一个
是的,这完全没有意义;只需将0
直接添加到数字中就是您真正想要的:
printf('0%d', $num)
'0' . $num
"0$num"