php - 如何遍历每个数组(内部数组)的数组

标签 php mysql

我有以下数组

$competency = array(
    array(
        "assessment_id" => 2,
        "activity_id" => 1,
        "grade" => 10,
        "competency_grade" => array(
            array(
                "competency_id" => 1,
                "grade" => 10
            ) ,
            array(
                "competency_id" => 1,
                "grade" => 10
            )
        )
    ) ,
    array(
        "assessment_id" => 2,
        "activity_id" => 1,
        "grade" => 10,
        "competency_grade" => array(
            array(
                "competency_id" => 1,
                "grade" => 10
            ) ,
            array(
                "competency_id" => 1,
                "grade" => 10
            )
        )
    )
);

我把它打印成

 echo "<pre>";
 print_r($competency);  

这一行给出的结果为

Array
(
    [0] => Array
        (
            [assessment_id] => 2
            [activity_id] => 1
            [grade] => 10
            [competency_grade] => Array
                (
                    [0] => Array
                        (
                            [competency_id] => 1
                            [grade] => 10
                        )

                    [1] => Array
                        (
                            [competency_id] => 1
                            [grade] => 10
                        )

                )

        )

    [1] => Array
        (
            [assessment_id] => 2
            [activity_id] => 1
            [grade] => 10
            [competency_grade] => Array
                (
                    [0] => Array
                        (
                            [competency_id] => 1
                            [grade] => 10
                        )

                    [1] => Array
                        (
                            [competency_id] => 1
                            [grade] => 10
                        )

                )

        )

   )

现在我尝试在第一个表的两个表中插入数据,我使用键 assessment_id、activity_id、grade 基于它返回插入的 id,并在第二个表中使用这个插入的 id 作为下面的代码

foreach ($competency as $key => $value) {
    foreach ($value as $innerkey=>$innervalue)
    {
       //echo "<pre>"; print_r($innerkey[0]);
         $query = "insert into grading set user_id = '".$user_id."',
                     assessment_id = '".$innervalue['assessment_id']."',
                     activity_id = '".$innervalue['activity_id']."',
                     date = now(),
                     grade = '".$innervalue['grade']."'";

       $result = mysql_query($query);
       $grading_id=  mysql_insert_id();
          if($innerkey=="competency_grade"){
            //foreach ($innervalue as )
            foreach ($innervalue as $mostinnerkey =>$mostinnervalue)
            {
               $query1 = "insert into competency_grade set 
                competency_id = '".$mostinnervalue['competency_id']."',
                grade = '".$mostinnervalue['grade']."' ,
                grading_id = $grading_id  ";
                $result1 = mysql_query($query1);
                echo mysql_error();
              //print_r($mostinnervalue['competency_id']); echo "<br>";
              //print_r($mostinnervalue['grade']);echo "<br>";
          }
      }
    }
}

但是我找不到解决方案,请帮助我

问候

最佳答案

****your error might fixed use following script****     

foreach ($competency as $key => $value) {
         $query = "insert into grading set user_id = '".$user_id."',
                     assessment_id = '".$value['assessment_id']."',
                     activity_id = '".$value['activity_id']."',
                     date = now(),
                     grade = '".$value['grade']."'";

       $result = mysql_query($query);
       $grading_id=  mysql_insert_id();
       foreach ($value as $innerkey => $innervalue)
       {
            if($innerkey=="competency_grade"){
         foreach ($innervalue as $mostinnerkey =>$mostinnervalue)
              {
                   $query1 = "insert into competency_grade set competency_id = '".$mostinnervalue['competency_id']."',
                                                                grade = '".$mostinnervalue['grade']."' ,   
                                                                grading_id = $grading_id  ";
                    $result1 = mysql_query($query1);
                    echo mysql_error();

              }
            }
      }

关于php - 如何遍历每个数组(内部数组)的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27310133/

相关文章:

mysql - 创建更新触发器以复制 MySQL 语法错误中更改的数据

mysql - 一年中每周的开始和结束日期

javascript - 使用 if 语句和查询

php - 带有 jQ​​uery 文件上传 UI 的 oneuploader

java - ClassNotFoundException 我的服务器中出现错误

mysql:更新数据库中的字符

php - mysql_query 导致 while 循环 X 2

php - 使用 gdata API 获取 Youtube Private 视频

php - GD图像叠加透明png

PHP 猜字游戏(突出显示正确和错误位置的字母 - 就像策划者一样)