<code><?php header('Content-Type: text/plain;charset=utf-8'); $arr = array ( array ( 'term' => '2015-2016-2', 'stu_id' => '201210530109', 'stu_name' => '罗成', 'stu_major' => '12热工1班', 'depart_name' => '材料学院', 'project_name' => '学雷锋做好事', 'cname' => '社会活动模块', 'period' => '16', 'credit' => '0' ), array ( 'term' => '2015-2016-2', 'stu_id' => '201210530109', 'stu_name' => '罗成', 'stu_major' => '12热工1班', 'depart_name' => '材料学院', 'project_name' => '会计从业资格证', 'cname' => '科技创新模块', 'period' => '12', 'credit' => '0' ), array ( 'term' => '2015-2016-1', 'stu_id' => '201210530109', 'stu_name' => '罗成', 'stu_major' => '12热工1班', 'depart_name' => '材料学院', 'project_name' => '教师资格证', 'cname' => '科技创新模块', 'period' => '12', 'credit' => '0' ), array ( 'term' => '2015-2016-2', 'stu_id' => '201210530111', 'stu_name' => '雷雨', 'stu_major' => '13视传1班', 'depart_name' => '设计学院', 'project_name' => '美术学', 'cname' => '文体艺术模块', 'period' => '15', 'credit' => '0' ), array ( 'term' => '2015-2016-2', 'stu_id' => '201210530108', 'stu_name' => '周励', 'stu_major' => '13产设1班', 'depart_name' => '设计学院', 'project_name' => 'DOM编程艺术', 'cname' => '科技创新模块', 'period' => '0', 'credit' => '0' ), array ( 'term' => '2015-2016-2', 'stu_id' => '201210530116', 'stu_name' => '高颜', 'stu_major' => '13陶艺2班', 'depart_name' => '陶美学院', 'project_name' => '音乐', 'cname' => '文体艺术模块', 'period' => '0', 'credit' => '0' ), array ( 'term' => '2015-2016-2', 'stu_id' => '201210530110', 'stu_name' => '程风', 'stu_major' => '13信管1班', 'depart_name' => '信息学院', 'project_name' => 'JavaScript高级程序设计', 'cname' => '思想道德模块', 'period' => '12', 'credit' => '0' ), array ( 'term' => '2015-2016-2', 'stu_id' => '201210530112', 'stu_name' => '苏环', 'stu_major' => '13公事1班', 'depart_name' => '人文学院', 'project_name' => '音乐', 'cname' => '文体艺术模块', 'period' => '0', 'credit' => '0' ), array ( 'term' => '2015-2016-2', 'stu_id' => '201210530109', 'stu_name' => '罗成', 'stu_major' => '12热工1班', 'depart_name' => '材料学院', 'project_name' => '美术学', 'cname' => '文体艺术模块', 'period' => '12', 'credit' => '0' ), array ( 'term' => '2015-2016-1', 'stu_id' => '201210530109', 'stu_name' => '罗成', 'stu_major' => '12热工1班', 'depart_name' => '材料学院', 'project_name' => 'DOM编程艺术', 'cname' => '科技创新模块', 'period' => '12', 'credit' => '0' ), array ( 'term' => '2015-2016-1', 'stu_id' => '201210530108', 'stu_name' => '周励', 'stu_major' => '13产设1班', 'depart_name' => '设计学院', 'project_name' => '美术学', 'cname' => '文体艺术模块', 'period' => '12', 'credit' => '0' ), ); $tmp = array(); foreach($arr as $v) { if(!isset($tmp[$v['stu_id']])){ $tmp[$v['stu_id']] = $v; }else { $tmp[$v['stu_id']]['period'] += $v['period']; } } echo "<pre class="brush:php;toolbar:false">"; // 二维数组 print_r(array_values($tmp)); ?>
$arr是一个二维数组,数组里有相同的stu_id(学生学号),根据stu_id(学生学号)的period(学时),计算总的period(学时),我的实现方案是这样的。
<code> $tmp = array(); foreach($arr as $v) { if(!isset($tmp[$v['stu_id']])){ $tmp[$v['stu_id']] = $v; }else { $tmp[$v['stu_id']]['period'] += $v['period']; } } echo "<pre class="brush:php;toolbar:false">"; // 二维数组 print_r(array_values($tmp));
但是,这只是实现了period(学时)相加。
我还需要加限制条件计算出数组和每个学生的总学分(credit),就是根据cname(模块名称),某个学生的每个模块(共四个模块,分别是思想道德模块、科技创新模块、文体艺术模块、社会活动模块)都需要大于等于16(四个模块同时都满足大于等于16),则这个学生的总学分为6.否则为0。
不知道怎么实现,特请教各位大神,在此先谢谢各位解答了。
回复内容:
<code><?php header('Content-Type: text/plain;charset=utf-8'); $arr = array ( array ( 'term' => '2015-2016-2', 'stu_id' => '201210530109', 'stu_name' => '罗成', 'stu_major' => '12热工1班', 'depart_name' => '材料学院', 'project_name' => '学雷锋做好事', 'cname' => '社会活动模块', 'period' => '16', 'credit' => '0' ), array ( 'term' => '2015-2016-2', 'stu_id' => '201210530109', 'stu_name' => '罗成', 'stu_major' => '12热工1班', 'depart_name' => '材料学院', 'project_name' => '会计从业资格证', 'cname' => '科技创新模块', 'period' => '12', 'credit' => '0' ), array ( 'term' => '2015-2016-1', 'stu_id' => '201210530109', 'stu_name' => '罗成', 'stu_major' => '12热工1班', 'depart_name' => '材料学院', 'project_name' => '教师资格证', 'cname' => '科技创新模块', 'period' => '12', 'credit' => '0' ), array ( 'term' => '2015-2016-2', 'stu_id' => '201210530111', 'stu_name' => '雷雨', 'stu_major' => '13视传1班', 'depart_name' => '设计学院', 'project_name' => '美术学', 'cname' => '文体艺术模块', 'period' => '15', 'credit' => '0' ), array ( 'term' => '2015-2016-2', 'stu_id' => '201210530108', 'stu_name' => '周励', 'stu_major' => '13产设1班', 'depart_name' => '设计学院', 'project_name' => 'DOM编程艺术', 'cname' => '科技创新模块', 'period' => '0', 'credit' => '0' ), array ( 'term' => '2015-2016-2', 'stu_id' => '201210530116', 'stu_name' => '高颜', 'stu_major' => '13陶艺2班', 'depart_name' => '陶美学院', 'project_name' => '音乐', 'cname' => '文体艺术模块', 'period' => '0', 'credit' => '0' ), array ( 'term' => '2015-2016-2', 'stu_id' => '201210530110', 'stu_name' => '程风', 'stu_major' => '13信管1班', 'depart_name' => '信息学院', 'project_name' => 'JavaScript高级程序设计', 'cname' => '思想道德模块', 'period' => '12', 'credit' => '0' ), array ( 'term' => '2015-2016-2', 'stu_id' => '201210530112', 'stu_name' => '苏环', 'stu_major' => '13公事1班', 'depart_name' => '人文学院', 'project_name' => '音乐', 'cname' => '文体艺术模块', 'period' => '0', 'credit' => '0' ), array ( 'term' => '2015-2016-2', 'stu_id' => '201210530109', 'stu_name' => '罗成', 'stu_major' => '12热工1班', 'depart_name' => '材料学院', 'project_name' => '美术学', 'cname' => '文体艺术模块', 'period' => '12', 'credit' => '0' ), array ( 'term' => '2015-2016-1', 'stu_id' => '201210530109', 'stu_name' => '罗成', 'stu_major' => '12热工1班', 'depart_name' => '材料学院', 'project_name' => 'DOM编程艺术', 'cname' => '科技创新模块', 'period' => '12', 'credit' => '0' ), array ( 'term' => '2015-2016-1', 'stu_id' => '201210530108', 'stu_name' => '周励', 'stu_major' => '13产设1班', 'depart_name' => '设计学院', 'project_name' => '美术学', 'cname' => '文体艺术模块', 'period' => '12', 'credit' => '0' ), ); $tmp = array(); foreach($arr as $v) { if(!isset($tmp[$v['stu_id']])){ $tmp[$v['stu_id']] = $v; }else { $tmp[$v['stu_id']]['period'] += $v['period']; } } echo "<pre class="brush:php;toolbar:false">"; // 二维数组 print_r(array_values($tmp)); ?>
$arr是一个二维数组,数组里有相同的stu_id(学生学号),根据stu_id(学生学号)的period(学时),计算总的period(学时),我的实现方案是这样的。
<code> $tmp = array(); foreach($arr as $v) { if(!isset($tmp[$v['stu_id']])){ $tmp[$v['stu_id']] = $v; }else { $tmp[$v['stu_id']]['period'] += $v['period']; } } echo "<pre class="brush:php;toolbar:false">"; // 二维数组 print_r(array_values($tmp));
但是,这只是实现了period(学时)相加。
我还需要加限制条件计算出数组和每个学生的总学分(credit),就是根据cname(模块名称),某个学生的每个模块(共四个模块,分别是思想道德模块、科技创新模块、文体艺术模块、社会活动模块)都需要大于等于16(四个模块同时都满足大于等于16),则这个学生的总学分为6.否则为0。
不知道怎么实现,特请教各位大神,在此先谢谢各位解答了。
<code>$res = array(); foreach($arr as $key => $value){ if(!array_key_exists($value['stu_id'],$res)){ $res[$value['stu_id']][$value['cname']] = $value['period']; }else{ if(array_key_exists($value['cname'],$res[$value['stu_id']])){ $res[$value['stu_id']][$value['cname']] +=$value['period']; }else{ $res[$value['stu_id']][$value['cname']] = $value['period']; } } } $tmp = array(); foreach($arr as $v) { if(!isset($tmp[$v['stu_id']])){ $tmp[$v['stu_id']] = $v; }else { $tmp[$v['stu_id']]['period'] += $v['period']; } } $result = array(); foreach ($res as $key => $value) { $result[$key]['total_period'] = array_sum($value); foreach($value as $key1 => $value1){ if($value1 $value) { $lastData[$key]['term'] = $value['term']; $lastData[$key]['stu_id'] = $value['stu_id']; $lastData[$key]['stu_name'] = $value['stu_name']; $lastData[$key]["stu_major"] = $value['stu_major']; $lastData[$key]["depart_name"] = $value['depart_name']; } foreach ($result as $key => $value) { $lastData[$key]["total_period"] = $value['total_period']; $lastData[$key]["total_credit"] = $value['total_credit']; } $theLastData = array_values($lastData); echo "<pre class="brush:php;toolbar:false">"; print_r($theLastData); exit;
你的数据怎么来的 是从数据库中读取的吗? 如果是 那么你的这些问题直接查询就出来了, 不需要用php逻辑处理~ 如果不是 那么逐条把数据存到数据库中 再查询得到想要的结果

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경
