我的表格有7种不同的标准。每个标准都有3或4个问题,用户将检查相应的值。
我想循环遍历每个问题并创建一个包含标准id - >的字符串。问题ID - >并回答价值。
我似乎无法让它发挥作用。
这是数组的转储:
条件数组:
array(7) { [0]=> string(1) "1" [1]=> string(1) "3" [2]=> string(1) "5" [3]=> string(1) "7" [4]=> string(2) "10" [5]=> string(2) "11" [6]=> string(2) "12" }
与每个问题相关的条件ID
array(19) { [0]=> string(1) "1" [1]=> string(1) "1" [2]=> string(1) "1" [3]=> string(1) "3" [4]=> string(1) "3" [5]=> string(1) "3" [6]=> string(1) "5" [7]=> string(1) "5" [8]=> string(1) "5" [9]=> string(1) "7" [10]=> string(1) "7" [11]=> string(1) "7" [12]=> string(1) "7" [13]=> string(2) "10" [14]=> string(2) "10" [15]=> string(2) "10" [16]=> string(2) "11" [17]=> string(2) "11" [18]=> string(2) "11" }
问答数组(仅回答6个问题)
array(6) { [11]=> array(1) { [0]=> string(1) "5" } [12]=> array(1) { [0]=> string(1) "5" } [13]=> array(1) { [0]=> string(1) "5" } [14]=> array(1) { [0]=> string(1) "4" } [15]=> array(1) { [0]=> string(1) "4" } [16]=> array(1) { [0]=> string(1) "4" } }
这是我的循环代码似乎不起作用:
$criteriaNums = $_POST['criteriaNum'];
$fk_criterias = $_POST['fk_criteria'];
$questionValue = $_POST['questionValue'];
foreach($questionValue as $question => $answer){
//echo $question;
foreach($fk_criterias as $fk){
foreach($criteriaNums as $crit){
if($fk == $crit){
$string1 = $fk;
//echo $string1;
}
}
}
$string2 = $question;
foreach ( $answer as $result ){
$string3 = $result;
//echo $string3;
}
$criteria .= $string1 . '|' . $string2 . '|' . $string3 . '|';
//echo $criteria;
}
任何帮助将不胜感激!!
字符串2和3似乎工作正常。它是string1不起作用。
这是上面代码生成的输出:
11 | 11 | 5 | 11 | 11 | 5 | 11 | 12 | 5 | 11 | 11 | 5 | 11 | 12 | 5 | 11 | 13 | 5 | 11 | 11 | 5 | 11 | 12 | 5 | 11 | 13 | 5 | 11 | 14 | 4 | 11 | 11 | 5 | 11 | 12 | 5 | 11 | 13 | 5 | 11 | 14 | 4 | 11 | 15 | 4 | 11 | 11 | 5 | 11 | 12 | 5 | 11 | 13 | 5 | 11 | 14 | 4 | 11 | 15 | 4 | 11 | 16 | 4 |
这是应该如何运作的:
总共有19个问题。在上面的问题/答案数组转储中,用户只回答了6。
第一个问题是id#11,答案是值5。 第二个问题是id#12,答案是值5 第三是id#13答案是5 第四是id#14答案是4 5号是id#15答案是4 第六是id#16回答是4
上面的条件id数组转储是与每个问题一起的关联条件。如果你看转储你可以看到前6(0 - 5)有1,1,1,3,3,3
所以预期的输出应该是
1 | 11 | 5 | 1 | 12 | 5 | 1 | 13 | 5 | 3 | 14 | 4 | 3 | 15 | 4 | 3 | 16 | 4 |
我希望这有帮助吗?
阵 ( [1] =>排列 ( [11] =>排列 ( [0] =>五 )
[12] => Array
(
[0] => 5
)
[13] => Array
(
[0] => 5
)
)
[3] => Array
(
[14] => Array
(
[0] => 5
)
[15] => Array
(
[0] => 5
)
[16] => Array
(
[0] => 5
)
)
)
1 | 11 | 5 | 1 | 12 | 5 | 1 | 13 | 5 | 3 | 14 | 5 | 3 | 15 | 5 | 3 | 16 | 5 |
这是我的代码:
foreach ($questionValue as $crit => $questions) {
foreach ($questions as $answer => $result) {
foreach($result as $value){
$criteria = $crit . "|" . $answer . "|" . $value . "|";
echo $criteria;
}
}
}
答案 0 :(得分:0)
你能提供输出吗?你能提供一个输入数组的例子吗?执行$string1
的部分看起来没问题,如果没有上述数据,问题就可以得到解决。
这个看起来很奇怪:
foreach ( $answer as $result ){
$string3 = $result;
//echo $string3;
}
您可能想要添加条件(例如在条件中)或执行$string3 .= $result;
答案 1 :(得分:0)
我解决了这个问题:
我使用了串联值。
这是我的代码:
foreach ($questionValue as $crit => $questions) {
foreach ($questions as $answer => $result) {
foreach($result as $value){
$string .= $crit . "|" . $answer . "|" . $value . "|";
//echo $criteria;
}
}
$criteria = $string;
}