根据条件从其他变量中组装变量

时间:2010-10-28 15:26:45

标签: php logic

大脑今天完全不起作用。

因此,我在表格中有几列基本上指定用户是否提供了某条信息。

例如,我有一个表格:

| ID | USER | crit1 | crit2 | crit3 | crit4 | etc. |

现在,对于任何“critX”字段,记录可能为1或是1。我不太关心数学和排列,但我想如果有4列,你可以有16种输出组合。在我的真实世界的例子中,我有16个不同的标准,所以我无法考虑那个混乱的输出。我需要编写某种程序。

在我的例子中,将评估每个暴击值,如果标准== 1 /是,它将被包含在另一个变量中,并且具有分配给它的更人性化的数据位。我目前正从数据库中提取每个值,并执行类似

的操作
### first I pull the values
$mydbarray[crit1] = $cr1;
$mydbarray[crit2] = $cr2;
$mydbarray[crit3] = $cr3;
(etc...)

### then I assign some human friendly text ONLY if the value == 1/yes
if($cr1==1) ($cr1 = "This info is present!";}
if($cr2==1) ($cr2 = "Number two is present!";}
if($cr3==1) ($cr3 = "Three was provided!";}

现在,我需要做的是,只有当“IF”触发为真并汇编成最终变量时才收集所有输出。

所以不知何故,我想要:

$finaloutput = $cr1, $cr2, $cr3;

显然这是无效的或我想要的,但即使DID有效,它最终也会包含所有== 0 / no实例。

基本上我需要对这些变量进行条件分组,但我没有得到它。

我正在考虑投射一个数组并在其中循环,但后来因为包含人类可理解的部分而感到茫然......

有些人在工作中提到使用bool的IF声明,但我并没有那么好。

我认为这很容易,但我整整一周都和宝宝一起上场。所以我的大脑坏了。

提前致谢!!! 罗布

2 个答案:

答案 0 :(得分:1)

首先,你写的很多东西都不是有效的PHP。我会假设你写这篇文章只是为了说明这一点,并没有打扰语法。

以下是如何操作:

你拿一个数组来放置你的文本:

$texts = array();

对于您的每个条件,您可以检查它们是否已提供,但是添加到之前创建的阵列中:

if($cr1==1) {$texts[] = "This info is present!";}
if($cr2==1) {$texts[] = "Number two is present!";}
if($cr3==1) {$texts[] = "Three was provided!";}
...

最后,您将所有文字与implode

连接起来
$finaloutput = implode(', ', $texts);

我更喜欢带有implode的方法,只是附加到字符串的方法,因为如果我想要一个逗号分隔符,我最后不会得到额外的一个。

祝你好运,Alin

答案 1 :(得分:0)

试试这个:

$finaloutput = '';
if($cr1) $finaloutput .= "This info is present! ";
if($cr2) $finaloutput .= "Number two is present! ";
if($cr3) $finaloutput .= "Three was provided! ";
echo $finaloutput;

如果if语句中只有一个项目,则不需要括号。我不确定你是否想在变量中使用逗号...

相关问题