2012-12-19 38 views
0

一個7位數分成多個變量我們有我們需要打入7個獨立變量「勢」 7位數字。如果是4位數字,則其他3位數字應該是空的。作爲一個例子:打破PHP

$total = 12345 

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

任何人有任何想法的最佳方式來做到這一點?

在此先感謝。

+3

[你嘗試過什麼(http://mattgemmell.com/2008/12/08/what-have-you-tried/)? – 3dgoo

+0

你想聲明'$ var1'和'$ var2'嗎? – F0G

回答

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; 

但我強烈建議使用數組。

5

你將需要:

應該很容易弄清楚。但嚴重的是,使用數組,而不是$var1$var2 ...

+6

下載者請解釋一下嗎? –

+0

對不起,這太苛刻了。當我低調時,那裏沒有最後一行。作爲一種懲罰,我今天戴帽子。 – F0G

0

如果$total是一個正整數,$total % 10會給你最後一個數字。整數除以10將刪除最後一位數字。

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

這不僅違反DRY,它拖動它變成一個黑暗的衚衕和強姦它... –

+1

這可能是更有建設性地說,這將是一個數組和循環更有效。 –

+0

對不起@Kolink,我只是想表現出不同的理念,在細節上抓住不放。更好? –

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

看看這會有所幫助。