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

彼らのほとんどが言ったように、配列を使用したくない場合でも、配列とループを使用するのが適切です。

これを試して:

<?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 に答える
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 に答える