1.此问题主要是ph操作p二维数组的合并;
2.初始数组如下:
$course = array( array( 'course_name' => '高等数学', 'major_name' => '计算机专业', 'school_name' => '某a高校' ), array( 'course_name' => '高等数学', 'major_name' => '物理专业', 'school_name' => '某a高校' ), array( 'course_name' => '高等数学', 'major_name' => '日语专业', 'school_name' => '某a高校' ), array( 'course_name' => '马克思概论', 'major_name' => '计算机专业', 'school_name' => '某b高校' ))
3.希望能得到如下数组:
$course = array( array( 'course_name' => '高等数学', 'major_name' => array('计算机专业','物理专业','日语专业'), 'school_name' => '某a高校' ), array( 'course_name' => '马克思概论', 'major_name' => array('计算机专业'), 'school_name' => '某b高校' ))
4.小白第一次提问;望能得到答复。小弟不才,被此问题困惑,(没有搜索到很好的答复,so伸手一次)(急急急)
回复内容: 1.此问题主要是ph操作p二维数组的合并;
2.初始数组如下:
$course = array( array( 'course_name' => '高等数学', 'major_name' => '计算机专业', 'school_name' => '某a高校' ), array( 'course_name' => '高等数学', 'major_name' => '物理专业', 'school_name' => '某a高校' ), array( 'course_name' => '高等数学', 'major_name' => '日语专业', 'school_name' => '某a高校' ), array( 'course_name' => '马克思概论', 'major_name' => '计算机专业', 'school_name' => '某b高校' ))
3.希望能得到如下数组:
$course = array( array( 'course_name' => '高等数学', 'major_name' => array('计算机专业','物理专业','日语专业'), 'school_name' => '某a高校' ), array( 'course_name' => '马克思概论', 'major_name' => array('计算机专业'), 'school_name' => '某b高校' ))
4.小白第一次提问;望能得到答复。小弟不才,被此问题困惑,(没有搜索到很好的答复,so伸手一次)(急急急)
首先你的一条数据的维度是这样的:
高校_课程: [专业1, [专业2, 专业3]]
所以要以 高校_课程作为唯一区别
// 上接你的$course数据$majors = array();foreach($course as $item){ extract($item); $key = {$school_name}:{$course_name}; if(!isset($majors[$key]){ $majors[$key] = array( course_name => $course_name, school_name => $school_name, major_name => array($major_name) ); }else{ // 已存在key记录且major_name未重复, 追加 marjor_name if(!in_array($marjor_name, $majors[$key]['major_name']){ $majors[$key]['major_name'][] = $marjor_name; } }}// 提取数组$majors = array_values($majors);print_r($majors); // 这就是你要的
$result = array();foreach ($course as $val) { if(!isset($result[$val['school_name'].$val['course_name']]['major_name'])) { $result[$val['school_name'].$val['course_name']]['major_name'] = array(); $result[$val['school_name'].$val['course_name']]['course_name']=$val['course_name']; $result[$val['school_name'].$val['course_name']]['school_name']=$val['school_name']; } array_push($result[$val['school_name'].$val['course_name']]['major_name'],$val['major_name']);}var_dump(array_values($result)); // 输出结果如下array(2) { [0]=> array(3) { [major_name]=> array(3) { [0]=> string(15) 计算机专业 [1]=> string(12) 物理专业 [2]=> string(12) 日语专业 } [course_name]=> string(12) 高等数学 [school_name]=> string(10) 某a高校 } [1]=> array(3) { [major_name]=> array(1) { [0]=> string(15) 计算机专业 } [course_name]=> string(15) 马克思概论 [school_name]=> string(10) 某b高校 }}