2016-08-04 192 views
0

我需要打印下面的語句。for循環 - 按順序打印值 - PHP

感謝您更新您的PH_NUMBER,ADDRESS,OFFICE NUMBER和EMAIL。

其中PH_NUMBER, ADDRESS, OFFICE_NUMBER and EMAIL是變量。

例如,如果值是空的變量"OFFICE_NUMBER"這句話應該是象下面這樣:

,感謝您更新PH_NUMBER,地址和電子郵件。

例如,如果值是空的變量"EMAIL"句子應該是象下面這樣:

,感謝您更新PH_NUMBER,地址和辦公室電話號碼。

$a = "Address"; 
$b = "Mobile"; 
$c = "email"; 

$array = array($a, $b, $c); 

$length = count($array); 

for ($i = 0; $i < $length; $i++) { 
    $total = $array[$i]; 
} 

echo "Thanks for udpating " . $total ; 

如何才能做到這一點? 任何建議都會有幫助。

+3

向我們展示您到目前爲止所嘗試的內容** SO不是免費的編碼服務** – RiggsFolly

+0

您是否試過自己寫過? – Paradoxis

+0

請閱讀[我可以問哪些主題](http://stackoverflow.com/help/on-topic) 和[如何提出一個好問題](http://stackoverflow.com/help/how-to - 問) 和[完美的問題](http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/) 以及如何創建[最小,完整和可驗證的例子] (http://stackoverflow.com/help/mcve) – RiggsFolly

回答

3

您不需要使用循環。

<?php 
    /* Collect all parameters to the array */ 
    $variables = [ 
     'PH_NUMBER', 
     'ADDRESS', 
     'EMAIL', 
     'OFFICE_NUMBER', 
    ]; 
    /* Sorting the array if need */ 
    /* Pop the element off the end of array */ 
    $variables = array_filter($variables); 
    $count = count($variables); 
    $lastVariable = array_pop($variables); 

    if($count > 1) { 
     printf('Thanks for updating your %s and %s', implode(', ', $variables), $lastVariable); 
    }elseif($count === 1){ 
     printf('Thanks for updating your %s', $lastVariable); 
    }else{ 
     print 'Nothing for update'; 
    } 
?> 

更新:爲了趕上案件只有1變量和空數組(沒有進行更新)小的提升。

+1

好的解決方案,只需在'array_pop()'之前放置'$ variables = array_filter($ variables);',以便根據OP請求移除/過濾所有空變量。 – mitkosoft

+0

感謝您的輸入。但是,有些時候這些值可能是空的。在這種情況下,這個句子就不合適了。例如,如果最後一個變量「OFFICE_NUMBER」爲空,則該句子將變爲「'感謝您更新PH_NUMBER,ADDRESS,EMAIL和」。這是錯誤的。 – Fero

+0

@Fero,看到我的評論。 – mitkosoft