(20分)用PHP如何取出数组中值最大的一组元素?

不是用什么max之类的函数取,我想取得数组中,值最大的一组元素!比如说:
$array = ('a'=>2,'b'=>1,'c'=>5,'d'=>12,'e'=>12,'f'=>3);
这个数组中d和e都为最大的,如果返回一个包含这两个元素的数组?
打错了,是:$array = array('a'=>2,'b'=>1,'c'=>5,'d'=>12,'e'=>12,'f'=>3);

其实我很想不通什么时候有这种需求,是不是你们老师布置这些作业很无聊~

程序如下:

<?php
//数组赋值
$array = array('a'=>2,'b'=>1,'c'=>5,'d'=>12,'e'=>12,'f'=>3);
//搜索最大元素
foreach ($array as $key=>$val) if (empty($maxval) || $val>$maxval) $maxval=$val;
//构造新的数组
foreach ($array as $key=>$val) if ($val==$maxval) $max_arr[$key]=$val;
//输出新的数组
print_r($max_arr);
?>

输出结果为:

E:\ygb>php a.php
Array
(
[d] => 12
[e] => 12
)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-04-06
最土的方法就是把数组元素比大小,一个一个遍历,这样会导致效率低。具体方法用两个for()嵌套循环。

还有一种简单的方法:你可以先用rsort();先对其进行降序排序,在取出第一个元素;
$array =array('a'=>2,'b'=>1,'c'=>5,'d'=>12,'e'=>12,'f'=>3);
rsort($array);
echo $array[0];//最大的元素;
所谓的最大 不一定是数字最大要看你数组存的是什么类型的如果是数字那就是数字的最大值,如果是其他字符那就是其asicll码的最大值。
第2个回答  2015-09-11
先说一下思路
1. 用PHP函数排序
sort() - 以升序对数组排序
rsort() - 以降序对数组排序
asort() - 根据值,以升序对关联数组进行排序
ksort() - 根据键,以升序对关联数组进行排序
arsort() - 根据值,以降序对关联数组进行排序
krsort() - 根据键,以降序对关联数组进行排序
案例:
<?php
$numbers=array(3,5,1,22,11);
sort($numbers);

$arrlength=count($numbers);
for($x=0;$x<$arrlength;$x++)
{
echo $numbers[$x];
echo "<br>";
}
?>

2. 自己编写函数取出数组中的两个数值比较,取大的跟后一个数值比较,直到结束
第3个回答  2009-03-26
<?php
$array = array('a'=>2,'b'=>1,'c'=>5,'d'=>12,'e'=>12,'f'=>3);
$tmp_arr = $array;
rsort($tmp_arr);//排序
foreach ($array as $k => $v) {
if ($v === $tmp_arr[0])$res[$k] = $v;
}
print_r($res);

?>
rsort()算不算max之类的函数?
第4个回答  2019-10-27
先说一下思路
1.
用PHP函数排序
sort()
-
以升序对数组排序
rsort()
-
以降序对数组排序
asort()
-
根据值,以升序对关联数组进行排序
ksort()
-
根据键,以升序对关联数组进行排序
arsort()
-
根据值,以降序对关联数组进行排序
krsort()
-
根据键,以降序对关联数组进行排序
案例:
<?php
$numbers=array(3,5,1,22,11);
sort($numbers);
$arrlength=count($numbers);
for($x=0;$x<$arrlength;$x++)
{
echo
$numbers[$x];
echo
"<br>";
}
?>
2.
自己编写函数取出数组中的两个数值比较,取大的跟后一个数值比较,直到结束
相似回答