我们有一个“潜在的”7位数字,我们需要分成7个单独的变量。如果是4位数字,则其他3位数字应为空。举个例子:
$total = 12345
$var1 = ""
$var2 = ""
$var3 = "1"
$var4 = "2"
$var5 = "3"
$var6 = "4"
$var7 = "5"
任何人对最佳方法都有任何想法吗?
提前致谢。
答案 0 :(得分:5)
答案 1 :(得分:5)
拆分,然后填充:
$a = 123456;
$arr = array_pad(str_split($a), -7, "");
请参阅output.
如果你绝对需要7个变量:
$a = 123456;
$arr = array_pad(str_split($a), -7, "");
$i = 1;
foreach($arr as $s)
${"var".$i++} = $s;
但我强烈建议使用数组。
答案 2 :(得分:0)
如果$total
是正整数,$total % 10
将为您提供最后一位数字。整数除以10将删除最后一位数。
$digits = array();
for ($i = $total; $i > 0; $i = (int)$total/10) {
array_unshift($digits, $total % 10);
}
答案 3 :(得分:0)
正如他们中的大多数人所说的那样,使用数组和循环是合适的,如果你不想使用数组的话。
试试这个:
<?php
$total=12345;
$totaldigits=strlen((string)$total);
while($totaldigits!=0){
$var=$total%10;
$total=$total/10;
$totaldigits--;
echo 'Digit '.$totaldigits.':'.$var.'<br/>';
}
?>
我无法根据需要将它们放在不同的变量中。为此你必须使用数组。
如果你改变主意,
$total=12345;
$num_arr=array();
$spaceneeded=7-strlen((string)$total);//the no. of array elements to be kept empty as per the total number of digits
$i=$spaceneeded;
$totaldigits=strlen((string)$total);
while($totaldigits!=0){
$var=$total%10;
$total=$total/10;
$totaldigits--;
for($j=0;$j<$spaceneeded;$j++){
$num_arr[$j]="";
}
$num_arr[$i]=$var;
$i++;
}
看看这是否有帮助。