0

以下は、という名前の多次元配列$prev_map_dataです。

Array
(
    [0] => Array
        (
            [class_id] => 2
            [class_name] => II
            [class_checked] => 1
            [class_subjects] => Array
                (
                    [0] => Array
                        (
                            [cs_map_id] => 81
                            [subject_name] => 11 Engllish
                            [subject_checked] => 1
                            [teacher_cs_id] => 81
                        )

                )

        )
[1] => Array
    (
        [class_id] => 3
        [class_name] => III
        [class_checked] => 1
        [class_subjects] => Array
            (
                [0] => Array
                    (
                        [cs_map_id] => 155
                        [subject_name] => Hidi
                        [subject_checked] => 1
                        [teacher_cs_id] => 155
                    )

                [1] => Array
                    (
                        [cs_map_id] => 156
                        [subject_name] => 11 Maths
                        [subject_checked] => 1
                        [teacher_cs_id] => 156
                    )

                [2] => Array
                    (
                        [cs_map_id] => 157
                        [subject_name] => 11 Science
                        [subject_checked] => 1
                        [teacher_cs_id] => 157
                    )

            )

    )

)

[class_id]key からすべての値を1 つずつ取得し、その値を配列にプッシュしたいと考えています$data。しかし、警告を受ける

Warning: Invalid argument supplied for foreach()

コードの何が問題なのか理解できません。コードを改善して値を新しい配列に追加するのを手伝ってくれる人はいますか? 前もって感謝します。私のコードは次のとおりです。

 $prev_map_data  = $objTeacherClassesSubjects->GetClassSubjectMappingsbyTeacherId ($request, $teacher_class_subjects_error_messages);
   foreach($prev_map_data as $map_id) {
              $cls_data[] = $map_id['class_id'];
          }
    }
4

3 に答える 3

0

$prev_map_data配列ではありません。var_export($prev_map_data);配列であるかどうかを確認するために使用します

于 2013-05-08T11:16:37.137 に答える
0

このコードを試してください

$teacher_class_subjects_error_messages);
   foreach($prev_map_data as $iKey => $iVal) {
              $cls_data[] = $iVal['class_id'];
          }
    }
于 2013-05-08T10:52:41.833 に答える
0
if(!empty($prev_map_data) && is_array($prev_map_data)) {
  foreach($prev_map_data as $key=>$map_id) {
     if(is_array($map_id))
       $cls_data[] = $map_id['class_id'];
     else
       echo '$map_id is not an array!';
  }
} else {
  echo '$prev_map_data is not an array or it is empty!';
}
于 2013-05-09T11:29:41.580 に答える