在PHP中将一个7位数字分解为多个变量

在PHP中将一个7位数字分解为多个变量,php,Php,我们有一个潜在的7位数,我们需要把它分解成7个独立的变量。如果是4位数字,则其他3位数字应为空。例如: $total = 12345 $var1 = "" $var2 = "" $var3 = "1" $var4 = "2" $var5 = "3" $var6 = "4" $var7 = "5" 有人对最好的方法有什么想法吗 提前感谢。您需要: 应该很容易弄清楚。但认真地说,使用数组而不是$var1、$var2…拆分,然后填充: $a = 123456; $arr = array_pad(

我们有一个潜在的7位数,我们需要把它分解成7个独立的变量。如果是4位数字,则其他3位数字应为空。例如:

$total = 12345 

$var1 = ""
$var2 = ""
$var3 = "1"
$var4 = "2"
$var5 = "3"
$var6 = "4"
$var7 = "5"
有人对最好的方法有什么想法吗

提前感谢。

您需要:

应该很容易弄清楚。但认真地说,使用数组而不是$var1、$var2…

拆分,然后填充:

$a = 123456;
$arr = array_pad(str_split($a), -7, "");

如果您绝对需要7个变量:

$a = 123456;
$arr = array_pad(str_split($a), -7, "");
$i = 1;
foreach($arr as $s)
    ${"var".$i++} = $s;
但是我强烈建议使用数组。

如果$total是正整数,那么$total%10将给出最后一位数字。整数除以10将删除最后一个数字

$digits = array();
for ($i = $total; $i > 0; $i = (int)$total/10) {
    array_unshift($digits, $total % 10);
}

正如大多数人所说,如果你不想使用数组,使用数组和循环是合适的

试试这个:

<?php
 $total=12345;
 $totaldigits=strlen((string)$total);
 while($totaldigits!=0){
   $var=$total%10;
   $total=$total/10;
   $totaldigits--;
   echo 'Digit '.$totaldigits.':'.$var.'<br/>';
 }
 ?>
我不能像你想的那样把它们放在不同的变量中。为此,您必须使用数组

编辑1: 万一你改变主意

$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++;
}

看看这是否有帮助。

?是否要声明$var1和$var2?如果说使用数组和循环会更有效,可能会更有建设性。抱歉@Kolink,我只是想展示一个不同的想法,而不是纠缠于细节。更好?对不起,太苛刻了。当我投反对票时,那里没有最后一行。作为惩罚,我今天戴了一顶n00b帽子。