php二维数组求最大值 求教各位大牛,现在又一个数组$a={[0]=>{123,张三,45},[1]=>{123,张三,60},[2]=>{234,李四,47},[3]=>{234,李四,68},[4]=>{234,李四,87}},求出张三和李四成绩最大值(最后一个值),不用mysql,只用php的数组操作,希望指教!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $a = array( array( 123, '张三', 45 ), array( 123, '张三', 60 ), array( 234, '李四', 47 ), array( 234, '李四', 68 ), array( 234, '李四', 87 ),);foreach($a as $v) $r[$v[1]] = max($r[$v[1]], $v[2]);print_r($r);Array( [张三] => 60 [李四] => 87) 如果是$a = array( array( 123, '张三','大一', 45 ), array( 123, '张三','大一', 60 ), array( 234, '李四', '大二',47 ), array( 234, '李四','大二', 68 ), array( 234, '李四','大一', 87 ),);同一个人,同一年的时候最大值呢? $v[1] 改为 $v[1].$v[2]其实思路很简单,只要将组装关联键就可以了和数据库操作时一样 $a = array( array( 123, '张三','大一', 45 ), array( 123, '张三','大一', 60 ), array( 234, '李四', '大二',47 ), array( 234, '李四','大二', 68 ), array( 234, '李四','大一', 87 ),);foreach($a as $v){ $r[$v[2]][$v[1]]=max($v[3],$r[$v[2]][$v[1]]);}print_r($r);/*Array( [大一] => Array ( [张三] => 60 [李四] => 87 ) [大二] => Array ( [李四] => 68 ))*/ 我用max函数求最大值好用,为什么min函数求最小值不好用呢?有什么不一样的地方吗? $a = array( array( 123, '张三', 45 ), array( 123, '张三', 60 ), array( 234, '李四', 47 ), array( 234, '李四', 68 ), array( 234, '李四', 87 ),);foreach($a as $v) { if(! $r[$v[1]]) $r[$v[1]] = 999; $r[$v[1]] = min($r[$v[1]], $v[2]);}print_r($r);需要有一个大的初值其实 max 时也是要初值的,只不过数组元素不出在时被当做了 0 数据同步 加上like 模糊查询条件 无法输出 ,在线等!!加分 如何将从数据库取得的数据循环写入5个dl PHP XML 合并节点 如何取得该字符串的值? php 函数引用"&"问题. wamp出现Network Error (tcp_error)错误 在PHP中,怎样比较两个日期相距有多少天啊? 在显示图片的时候,可以显示8行,每行4列怎么实现 (新手)php 文件运行提示错误,找不到原因求解 用什么工具可以方便的 预览、修改 php和css 。。。还得接着求助。。关于PHP中如何把数组作为sql查询语句的条件,我的代码有问题
array( 123, '张三', 45 ),
array( 123, '张三', 60 ),
array( 234, '李四', 47 ),
array( 234, '李四', 68 ),
array( 234, '李四', 87 ),
);foreach($a as $v)
$r[$v[1]] = max($r[$v[1]], $v[2]);print_r($r);Array
(
[张三] => 60
[李四] => 87
)
$a = array(
array( 123, '张三','大一', 45 ),
array( 123, '张三','大一', 60 ),
array( 234, '李四', '大二',47 ),
array( 234, '李四','大二', 68 ),
array( 234, '李四','大一', 87 ),
);
同一个人,同一年的时候最大值呢?
和数据库操作时一样
$a = array(
array( 123, '张三','大一', 45 ),
array( 123, '张三','大一', 60 ),
array( 234, '李四', '大二',47 ),
array( 234, '李四','大二', 68 ),
array( 234, '李四','大一', 87 ),
);
foreach($a as $v){
$r[$v[2]][$v[1]]=max($v[3],$r[$v[2]][$v[1]]);
}
print_r($r);
/*Array
(
[大一] => Array
(
[张三] => 60
[李四] => 87
)
[大二] => Array
(
[李四] => 68
)
)*/
我用max函数求最大值好用,为什么min函数求最小值不好用呢?有什么不一样的地方吗?
array( 123, '张三', 45 ),
array( 123, '张三', 60 ),
array( 234, '李四', 47 ),
array( 234, '李四', 68 ),
array( 234, '李四', 87 ),
);foreach($a as $v) {
if(! $r[$v[1]]) $r[$v[1]] = 999;
$r[$v[1]] = min($r[$v[1]], $v[2]);
}print_r($r);需要有一个大的初值
其实 max 时也是要初值的,只不过数组元素不出在时被当做了 0