大脑今天完全不起作用。
因此,我在表格中有几列基本上指定用户是否提供了某条信息。
例如,我有一个表格:
| 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声明,但我并没有那么好。
我认为这很容易,但我整整一周都和宝宝一起上场。所以我的大脑坏了。
提前致谢!!! 罗布
答案 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
的方法,只是附加到字符串的方法,因为如果我想要一个逗号分隔符,我最后不会得到额外的一个。
答案 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语句中只有一个项目,则不需要括号。我不确定你是否想在变量中使用逗号...