php在多个数组中循环
我有一个表格,有7个不同的标准。每个标准有3或4个问题,用户将检查相应的值php在多个数组中循环,php,arrays,Php,Arrays,我有一个表格,有7个不同的标准。每个标准有3或4个问题,用户将检查相应的值 [12] => Array ( [0] => 5 ) [13] => Array ( [0] => 5 ) ) [3] => Array ( [14] =>
[12] => Array
(
[0] => 5
)
[13] => Array
(
[0] => 5
)
)
[3] => Array
(
[14] => Array
(
[0] => 5
)
[15] => Array
(
[0] => 5
)
[16] => Array
(
[0] => 5
)
)
我想循环处理每个问题,并创建一个字符串,其中包含条件id->问题id->和答案值
[12] => Array
(
[0] => 5
)
[13] => Array
(
[0] => 5
)
)
[3] => Array
(
[14] => Array
(
[0] => 5
)
[15] => Array
(
[0] => 5
)
[16] => Array
(
[0] => 5
)
)
我似乎无法让它工作
[12] => Array
(
[0] => 5
)
[13] => Array
(
[0] => 5
)
)
[3] => Array
(
[14] => Array
(
[0] => 5
)
[15] => Array
(
[0] => 5
)
[16] => Array
(
[0] => 5
)
)
以下是阵列的转储:
[12] => Array
(
[0] => 5
)
[13] => Array
(
[0] => 5
)
)
[3] => Array
(
[14] => Array
(
[0] => 5
)
[15] => Array
(
[0] => 5
)
[16] => Array
(
[0] => 5
)
)
标准数组:
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" }
[12] => Array
(
[0] => 5
)
[13] => Array
(
[0] => 5
)
)
[3] => Array
(
[14] => Array
(
[0] => 5
)
[15] => Array
(
[0] => 5
)
[16] => Array
(
[0] => 5
)
)
与每个问题关联的标准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" }
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" } }
[12] => Array
(
[0] => 5
)
[13] => Array
(
[0] => 5
)
)
[3] => Array
(
[14] => Array
(
[0] => 5
)
[15] => Array
(
[0] => 5
)
[16] => Array
(
[0] => 5
)
)
问答数组(仅回答6个问题)
[12] => Array
(
[0] => 5
)
[13] => Array
(
[0] => 5
)
)
[3] => Array
(
[14] => Array
(
[0] => 5
)
[15] => Array
(
[0] => 5
)
[16] => Array
(
[0] => 5
)
)
下面是我的循环代码,它似乎不起作用:
$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;
}
[12] => Array
(
[0] => 5
)
[13] => Array
(
[0] => 5
)
)
[3] => Array
(
[14] => Array
(
[0] => 5
)
[15] => Array
(
[0] => 5
)
[16] => Array
(
[0] => 5
)
)
任何帮助都将不胜感激
[12] => Array
(
[0] => 5
)
[13] => Array
(
[0] => 5
)
)
[3] => Array
(
[14] => Array
(
[0] => 5
)
[15] => Array
(
[0] => 5
)
[16] => Array
(
[0] => 5
)
)
字符串2和3似乎工作正常。是string1不起作用
[12] => Array
(
[0] => 5
)
[13] => Array
(
[0] => 5
)
)
[3] => Array
(
[14] => Array
(
[0] => 5
)
[15] => Array
(
[0] => 5
)
[16] => Array
(
[0] => 5
)
)
这是上述代码生成的输出:
[12] => Array
(
[0] => 5
)
[13] => Array
(
[0] => 5
)
)
[3] => Array
(
[14] => Array
(
[0] => 5
)
[15] => Array
(
[0] => 5
)
[16] => Array
(
[0] => 5
)
)
11 | 11 111241111 111241717 17 17 17 17 17 17 17 17 17 17 17 17 17 17 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 1112444 4 11 11 11 11 11 11 11 11 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 11 11 11 11 11 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 11 11 11 11 11 11 11 11 \12444 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 11 11 11 11 11 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 11 11 11 11 11 11 11 11 11 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 | 11 | 14 | 4 | 11 | 15 | 4 | 11 | 5 | 11 | 13 | 5 | 11 | 14 | 4 | 11 | 15 | 4 | 11 | 16 |
[12] => Array
(
[0] => 5
)
[13] => Array
(
[0] => 5
)
)
[3] => Array
(
[14] => Array
(
[0] => 5
)
[15] => Array
(
[0] => 5
)
[16] => Array
(
[0] => 5
)
)
这就是工作原理:
[12] => Array
(
[0] => 5
)
[13] => Array
(
[0] => 5
)
)
[3] => Array
(
[14] => Array
(
[0] => 5
)
[15] => Array
(
[0] => 5
)
[16] => Array
(
[0] => 5
)
)
总共有19个问题。在上面的问答数组中,用户只回答了6个问题
[12] => Array
(
[0] => 5
)
[13] => Array
(
[0] => 5
)
)
[3] => Array
(
[14] => Array
(
[0] => 5
)
[15] => Array
(
[0] => 5
)
[16] => Array
(
[0] => 5
)
)
第一个问题是id#11,答案是值5。
第二个问题是id#12,答案是值5
第三个是id#13答案是5
第四个是id#14答案是4
第五个是id#15个答案是4
第6个是id#16个答案是4
[12] => Array
(
[0] => 5
)
[13] => Array
(
[0] => 5
)
)
[3] => Array
(
[14] => Array
(
[0] => 5
)
[15] => Array
(
[0] => 5
)
[16] => Array
(
[0] => 5
)
)
上面的条件id数组转储是与每个问题相关联的条件。如果您查看转储,您可以看到前6个(0-5)有1、1、1、3、3、3
[12] => Array
(
[0] => 5
)
[13] => Array
(
[0] => 5
)
)
[3] => Array
(
[14] => Array
(
[0] => 5
)
[15] => Array
(
[0] => 5
)
[16] => Array
(
[0] => 5
)
)
因此,预期的输出应该是
[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 | 4 |
3 | 15 | 4 |
3 | 16 | 4|
[12] => Array
(
[0] => 5
)
[13] => Array
(
[0] => 5
)
)
[3] => Array
(
[14] => Array
(
[0] => 5
)
[15] => Array
(
[0] => 5
)
[16] => Array
(
[0] => 5
)
)
我希望这有帮助
[12] => Array
(
[0] => 5
)
[13] => Array
(
[0] => 5
)
)
[3] => Array
(
[14] => Array
(
[0] => 5
)
[15] => Array
(
[0] => 5
)
[16] => Array
(
[0] => 5
)
)
排列
(
[1] =>阵列
(
[11] =>阵列
(
[0] => 5
)
[12] => Array
(
[0] => 5
)
[13] => Array
(
[0] => 5
)
)
[3] => Array
(
[14] => Array
(
[0] => 5
)
[15] => Array
(
[0] => 5
)
[16] => Array
(
[0] => 5
)
)
)
[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 | 5 | 15 | 5 | 3 | 16 |5 |
[12] => Array
(
[0] => 5
)
[13] => Array
(
[0] => 5
)
)
[3] => Array
(
[14] => Array
(
[0] => 5
)
[15] => Array
(
[0] => 5
)
[16] => Array
(
[0] => 5
)
)
这是我的密码:
[12] => Array
(
[0] => 5
)
[13] => Array
(
[0] => 5
)
)
[3] => Array
(
[14] => Array
(
[0] => 5
)
[15] => Array
(
[0] => 5
)
[16] => Array
(
[0] => 5
)
)
foreach ($questionValue as $crit => $questions) {
foreach ($questions as $answer => $result) {
foreach($result as $value){
$criteria = $crit . "|" . $answer . "|" . $value . "|";
echo $criteria;
}
}
}
foreach ($questionValue as $crit => $questions) {
foreach ($questions as $answer => $result) {
foreach($result as $value){
$string .= $crit . "|" . $answer . "|" . $value . "|";
//echo $criteria;
}
}
$criteria = $string;
}
您能提供输出吗?您能提供一个输入阵列的示例吗?执行
$string1
的部分看起来正常,如果没有上述数据,则问题可能会得到解决
[12] => Array
(
[0] => 5
)
[13] => Array
(
[0] => 5
)
)
[3] => Array
(
[14] => Array
(
[0] => 5
)
[15] => Array
(
[0] => 5
)
[16] => Array
(
[0] => 5
)
)
这个看起来很奇怪:
[12] => Array
(
[0] => 5
)
[13] => Array
(
[0] => 5
)
)
[3] => Array
(
[14] => Array
(
[0] => 5
)
[15] => Array
(
[0] => 5
)
[16] => Array
(
[0] => 5
)
)
foreach ( $answer as $result ){
$string3 = $result;
//echo $string3;
}
您可能想要添加一个条件(如在条件中)或执行$string3.=$result;
我修复了该问题:
[12] => Array
(
[0] => 5
)
[13] => Array
(
[0] => 5
)
)
[3] => Array
(
[14] => Array
(
[0] => 5
)
[15] => Array
(
[0] => 5
)
[16] => Array
(
[0] => 5
)
)
我对值使用了连接
[12] => Array
(
[0] => 5
)
[13] => Array
(
[0] => 5
)
)
[3] => Array
(
[14] => Array
(
[0] => 5
)
[15] => Array
(
[0] => 5
)
[16] => Array
(
[0] => 5
)
)
这是我的密码:
[12] => Array
(
[0] => 5
)
[13] => Array
(
[0] => 5
)
)
[3] => Array
(
[14] => Array
(
[0] => 5
)
[15] => Array
(
[0] => 5
)
[16] => Array
(
[0] => 5
)
)
foreach ($questionValue as $crit => $questions) {
foreach ($questions as $answer => $result) {
foreach($result as $value){
$criteria = $crit . "|" . $answer . "|" . $value . "|";
echo $criteria;
}
}
}
foreach ($questionValue as $crit => $questions) {
foreach ($questions as $answer => $result) {
foreach($result as $value){
$string .= $crit . "|" . $answer . "|" . $value . "|";
//echo $criteria;
}
}
$criteria = $string;
}
我已经将输出添加到原始问题中,您是否也可以提供输入数据?(+可能是手工制作的输入预期输出)我已经添加了输入。我还不确定,该标准用于什么?无论如何,我认为最好将fk_标准和标准化为单个关联数组(其中键是问题id,值是标准NUM的数组)。我越来越接近了。我将$_POST设置为三维数组,并包含了标准id。我添加了数组转储和输出。现在唯一的问题是它在嵌套循环内回音良好。它只回音循环外的最后一个值。