PHP数组自定义

时间:2012-03-30 12:10:20

标签: php arrays multidimensional-array for-loop foreach

你好我有这样的数组

   [0] => Array
            (
                [ExamMonth] => Array
                    (
                        [name] => MAY
                    )

                [ExamType] => Array
                    (
                        [exam_type] => Grades
                    )

                [Month] => Array
                    (
                        [class_subject_id] => 0
                        [marks_obtained] => 0
                        [grade] => 
                    )

                [Subject] => Array
                    (
                        [subject_name] => Punjabi
                    )

            )

        [1] => Array
            (
                [ExamMonth] => Array
                    (
                        [name] => MAY
                    )

                [ExamType] => Array
                    (
                        [exam_type] => Examinations
                    )

                [Month] => Array
                    (
                        [class_subject_id] => 0
                        [marks_obtained] => 124
                        [grade] => a
                    )

                [Subject] => Array
                    (
                        [subject_name] => Mathematics
                    )

            )

        [2] => Array
            (
                [ExamMonth] => Array
                    (
                        [name] => MAY
                    )

                [ExamType] => Array
                    (
                        [exam_type] => Examinations
                    )

                [Month] => Array
                    (
                        [class_subject_id] => 0
                        [marks_obtained] => 124
                        [grade] => 
                    )

                [Subject] => Array
                    (
                        [subject_name] => Physical Edu
                    )

            )

        [3] => Array
            (
                [ExamMonth] => Array
                    (
                        [name] => MAY
                    )

                [ExamType] => Array
                    (
                        [exam_type] => Examinations
                    )

                [Month] => Array
                    (
                        [class_subject_id] => 0
                        [marks_obtained] => 124
                        [grade] => a
                    )

                [Subject] => Array
                    (
                        [subject_name] => Hindi
                    )

            )

        [4] => Array
            (
                [ExamMonth] => Array
                    (
                        [name] => SEPTEMBER
                    )

                [ExamType] => Array
                    (
                        [exam_type] => Examinations
                    )

                [Month] => Array
                    (
                        [class_subject_id] => 0
                        [marks_obtained] => 124
                        [grade] => a
                    )

                [Subject] => Array
                    (
                        [subject_name] => Hindi
                    )

            )

        [5] => Array
            (
                [ExamMonth] => Array
                    (
                        [name] => SEPTEMBER
                    )

                [ExamType] => Array
                    (
                        [exam_type] => Examinations
                    )

                [Month] => Array
                    (
                        [class_subject_id] => 0
                        [marks_obtained] => 124
                        [grade] => a
                    )

                [Subject] => Array
                    (
                        [subject_name] => Hindi
                    )

            )

        [6] => Array
            (
                [ExamMonth] => Array
                    (
                        [name] => SEPTEMBER
                    )

                [ExamType] => Array
                    (
                        [exam_type] => Examinations
                    )

                [Month] => Array
                    (
                        [class_subject_id] => 0
                        [marks_obtained] => 124
                        [grade] => a
                    )

                [Subject] => Array
                    (
                        [subject_name] => Geography
                    )

            )

    )

但我需要像

这样的数组
[May]=>Array {
             [0]=>Array (
 [ExamType] => Array
                    (
                        [exam_type] => Grades
                    )

                [Month] => Array
                    (
                        [class_subject_id] => 0
                        [marks_obtained] => 0
                        [grade] => 
                    )

                [Subject] => Array
                    (
                        [subject_name] => Punjabi
                    )
    )
So on 
[September ]=>Array

}

我不知道该怎么做。谁能告诉我怎么做?

提前致谢

3 个答案:

答案 0 :(得分:0)

这样的事情可以解决问题:

foreach ($yourArray as $exam) {
  $newArray[$exam['ExamMonth']['month']][] = array(
    'ExamType' => $exam['ExamType'],
    // etc.
  );
}

答案 1 :(得分:0)

这样的事情应该有效:

$newArr = array();
foreach($months as $month) {
  $newArr[$month['ExamMonth']['name']] = $month;
  unset($newArr[$month['ExamMonth']]);
}

答案 2 :(得分:0)

主要错误位是括号。数组在()中定义。另外,我希望它是伪代码,因为它不是一个完整的有效语句。这将是一个完整的实例:

$School = array
    (
    [May]=>Array
         (
         [0]=>Array
             (
             [ExamType] => Array  ( [exam_type] => Grades )
             [Month] => Array (
                              [class_subject_id] => 0
                              [marks_obtained] => 0
                              [grade] => 
                              )
             [Subject] => Array ( [subject_name] => Punjabi )
             )
         [1]=>Array
             (
             [ExamType] => Array  ( [exam_type] => Grades )
             [Month] => Array (
                              [class_subject_id] => 0
                              [marks_obtained] => 0
                              [grade] => 
                              )
             [Subject] => Array ( [subject_name] => Punjabi2 )
             )
         )
    [Juny]=>Array
         (
         [2]=>Array
             (
             [ExamType] => Array  ( [exam_type] => Grades )
             [Month] => Array (
                              [class_subject_id] => 0
                              [marks_obtained] => 0
                              [grade] => 
                              )
             [Subject] => Array ( [subject_name] => Punjabi )
             )
         )
    )