得到5个变量PHP的组合结果

时间:2014-05-02 15:38:06

标签: php

我所拥有的是5个不同的输入,用户可以填写或不填写

  • INPUT1:
  • 输入2:
  • 输入3:
  • INPUT4:
  • 输入5:

总结每个输入的状态为0或1,未填充或填充。

我需要做的是轻松简单地获得所有32种组合。

我试图做的是这样的事情

i1 = trim($_POST['input1']);
i2 = trim($_POST['input2']);
i3 = trim($_POST['input3']);
i4 = trim($_POST['input4']);
i5 = trim($_POST['input5']);

if(empty(i1) and empty(i2) and empty(i3) and empty(i4) and empty(i5))
{ 
     code = '00000';
     sentence = sentencesql(code); // i have a sql for each combination
} 
elseif (empty(i1) and empty(i2) and empty(i3) and empty(i4) and !empty(i5))
{
     code = '00001';
     sentence = sentencesql(code);
}
.
.
.
// each and every combination
.
.
elseif(!empty(i1) and !empty(i2) and !empty(i3) and !empty(i4) and !empty(i5))
{
     code = '11111';
     sentence = sentencesql(code);
}

这可行,但代码非常广泛

关于如何缩短代码的任何想法???

5 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

$code = "";
for ($i = 1; $i <= 5; $i++) {
  $code += (trim($_POST['input'+$i]) == "") ? "0" : "1";
}

答案 1 :(得分:0)

你可以试试这个

i1 = (empty(trim($_POST['input1']))?'0':'1');// si vide i1 = '0' sinon i1= '1' 
i2 = (empty(trim($_POST['input2']))?'0':'1');
i3 = (empty(trim($_POST['input3']))?'0':'1');
i4 = (empty(trim($_POST['input4']))?'0':'1');
i5 = (empty(trim($_POST['input5']))?'0':'1');

code = i1 . i2 . i3 . i4 . i5;// crer le code en concatenant les resultat
sentence = sentencesql(code);

答案 2 :(得分:0)

你怎么把它们写成:

i1 = trim($_POST['input1']);
i2 = trim($_POST['input2']);
i3 = trim($_POST['input3']);
i4 = trim($_POST['input4']);
i5 = trim($_POST['input5']);

code = i1 . i2 . i3 . i4 . i5;
sentence = sentencesql(code);

这会产生你想要的,我想。

正常变量是$,它将如下所示:

$i1 = trim($_POST['input1']);
$i2 = trim($_POST['input2']);
$i3 = trim($_POST['input3']);
$i4 = trim($_POST['input4']);
$i5 = trim($_POST['input5']);

$code = $i1 . $i2 . $i3 . $i4 . $i5;
$sentence = sentencesql($code);

答案 3 :(得分:0)

你可以这样做,

for($i=1;$i<=32;$i++)
{
  if(empty(trim($_POST['input'.$i])))
    $code .= '0';
  elseif(!empty(trim($_POST['input'.$i])))
    $code .= '1';
}
 $sentence = sentencesql($code);

答案 4 :(得分:0)

以下代码将完全按照您的要求执行:

$code = "";
$code .= empty($_POST['input1']) ? 0 : 1;
$code .= empty($_POST['input2']) ? 0 : 1;
$code .= empty($_POST['input3']) ? 0 : 1;
$code .= empty($_POST['input4']) ? 0 : 1;
$code .= empty($_POST['input5']) ? 0 : 1;
$sentence = sentencesql($code);