Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php在多个数组中循环_Php_Arrays - Fatal编程技术网

php在多个数组中循环

php在多个数组中循环,php,arrays,Php,Arrays,我有一个表格,有7个不同的标准。每个标准有3或4个问题,用户将检查相应的值 [12] => Array ( [0] => 5 ) [13] => Array ( [0] => 5 ) ) [3] => Array ( [14] =>

我有一个表格,有7个不同的标准。每个标准有3或4个问题,用户将检查相应的值

        [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。我添加了数组转储和输出。现在唯一的问题是它在嵌套循环内回音良好。它只回音循环外的最后一个值。