$arr = array( array('id'=>'1','姓名'=>'小白','性别'=>'男','总分'=>75,'班级'=>'1'), array('id'=>'2','姓名'=>'小黑','性别'=>'男','总分'=>76,'班级'=>'1'), array('id'=>'3','姓名'=>'小明','性别'=>'女','总分'=>77,'班级'=>'1'), array('id'=>'4','姓名'=>'小光','性别'=>'女','总分'=>80,'班级'=>'1'), array('id'=>'5','姓名'=>'小草','性别'=>'女','总分'=>82,'班级'=>'1'), array('id'=>'6','姓名'=>'小丽','性别'=>'男','总分'=>90,'班级'=>'1'), array('id'=>'7','姓名'=>'小红','性别'=>'男','总分'=>90,'班级'=>'1'), array('id'=>'8','姓名'=>'小蓝','性别'=>'男','总分'=>84,'班级'=>'1'), );此为二维数组:要求:第一步:筛选出男生。第二步:求出总分最高分。第三步:确定该生姓名。请给位高手给予解答。
<?php$arr = array( array('id'=>'1','姓名'=>'小白','性别'=>'男','班级'=>'1','总分'=>75), array('id'=>'2','姓名'=>'小黑','性别'=>'男','班级'=>'1','总分'=>76), array('id'=>'3','姓名'=>'小明','性别'=>'女','班级'=>'1','总分'=>77), array('id'=>'4','姓名'=>'小光','性别'=>'女','班级'=>'1','总分'=>80), array('id'=>'5','姓名'=>'小草','性别'=>'女','班级'=>'1','总分'=>82), array('id'=>'6','姓名'=>'小丽','性别'=>'男','班级'=>'1','总分'=>90), array('id'=>'7','姓名'=>'小红','性别'=>'男','班级'=>'1','总分'=>90), array('id'=>'8','姓名'=>'小蓝','性别'=>'男','班级'=>'1','总分'=>84)); //第一次遍历数组筛出男性//用到循环函数、数组函数:foreach、array_push$manArr = array();//定义个空数组,一会装男性数据$topScore = 0;//定义个最高总分,一会在遍历过程顺便获取最高分foreach($arr as $v){ if($v['性别']=='男'){ //对符合男生条件的数组进行记录 array_push($manArr,$v);//把符合男性条件的数组装进刚定义的空数组 //记录男生最高分的分数 if($v['总分']>$topScore){ $topScore = $v['总分']; } }}//所以现在$manArr就是所有男性了,array('小白'=>75,...)//接下来是求出总分最高的,继续用循环的方式取出成绩等于最高分数的foreach($manArr as $v){ if($v['总分']==$topScore){ echo $v['姓名'] . "\r\n"; }}
1.array_count_values(Array('a','b','c','a','b')):返回数组中所有值出现的次数,函数执行结果:Array ( [a] => 2 [b] => 2 [c] => 1 )。2.求和可以写foreach循环。