0

我们有一个“潜在”的 7 位数字,我们需要将其分解为 7 个单独的变量。如果是 4 位数字,则其他 3 位数字应为空。举个例子:

$total = 12345 

$var1 = ""
$var2 = ""
$var3 = "1"
$var4 = "2"
$var5 = "3"
$var6 = "4"
$var7 = "5"

有人对最好的方法有任何想法吗?

提前致谢。

4

4 回答 4

5

你会需要:

应该很容易弄清楚。但说真的,使用数组而不是$var1, $var2...

于 2012-12-19T05:40:56.570 回答
5

拆分,然后填充:

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

但我强烈建议使用数组。

于 2012-12-19T05:43:34.817 回答
0

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

$digits = array();
for ($i = $total; $i > 0; $i = (int)$total/10) {
    array_unshift($digits, $total % 10);
}
于 2012-12-19T05:44:39.013 回答
0

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

试试这个:

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

看看这是否有帮助。

于 2012-12-19T06:02:21.833 回答