2016-08-04 141 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