Php 从数组中获取最大数
我有以下数组:Php 从数组中获取最大数,php,arrays,sorting,Php,Arrays,Sorting,我有以下数组: Array ( [0] => 80 ) Array ( [0] => 20 ) Array ( [0] => 90 ) 代码: 我应该如何返回值90?因为它是我想返回到$variable中的最高数字,所以最简单的方法是使用php中的标准代码函数: $array = array(0 => 80, 1 => 20, 2 => 90); $variable = max($array); 另请参见位于的文档 更新:此函数接受的不仅仅是一个整数数组。
Array ( [0] => 80 ) Array ( [0] => 20 ) Array ( [0] => 90 )
代码:
我应该如何返回值90?因为它是我想返回到$variable中的最高数字,所以最简单的方法是使用php中的标准代码函数:
$array = array(0 => 80, 1 => 20, 2 => 90);
$variable = max($array);
另请参见位于的文档
更新:此函数接受的不仅仅是一个整数数组。所有这些都有效,并按预期返回3
:
$a1 = array(1);
$a2 = array(2);
$a3 = array(3);
$i1 = 1;
$i2 = 2;
$i3 = 3;
$arr1 = array($a1, $a2, $a3);
$arr2 = array($i1, $i2, $i3);
echo max($a1, $a2, $a3), "\n"; // 3
echo max($i1, $i2, $i3), "\n"; // 3
echo max($arr1), "\n"; // 3
echo max($arr2), "\n"; // 3
数组中使用的键并不重要
更新2:如果您确实需要从值802090
开始工作,并且可以确保值始终是两位数的百分比,您也可以使用stru-split
函数(然后再次使用max
函数):
如果您有一个包含数组的数组,可以这样做:
$masterArray = array(
array(80),
array(20),
array(90),
);
$highestValue = 0;
foreach($masterArray as $arr){
$highestValue = $arr[0] > $highestValue ? $arr[0] : $highestValue;
}
echo $highestValue; //echo 90;
这里是一个例子,如果你有3个数组或变量
$a1 = Array ( "0" => 80 );
$a2 = Array ( "0" => 20 );
$a3 = Array ( "0" => 90 );
$a4 = array_merge($a1,$a2);
$a5 = array_merge($a4,$a3);
echo '<pre>';
print_r(max($a5));
$a1=数组(“0”=>80);
$a2=阵列(“0”=>20);
$a3=阵列(“0”=>90);
$a4=数组合并($a1,$a2);
$a5=数组合并($a4,$a3);
回声';
印刷品(最高(5美元));
您不需要循环。合并三个数组,然后使用max()
除非对数组进行排序,否则将得到最好的结果。如果已排序,则只取第一个和最后一个元素 当然,如果它没有被排序,那么先排序然后抓住第一个和最后一个肯定比只循环一次效率低。即使是最好的排序算法也必须多次查看每个元素(每个元素的平均O(logn)次。这就是O(N*logn)总数。一次简单的扫描只需O(N) 如果您希望快速访问数据结构中最大的元素,请查看堆,以找到一种有效的方法,使对象保持某种顺序
<?
$a=array(0 => 1300 );
$b=array(0 => 500 );
$c=array(0 => 1220 );
$MaxValue=0;
if($a[0]>$b[0])
{
$MaxValue=$a[0];
if($b[0]>$MaxValue)
{
$MaxValue=$b[0];
}
else
{
if($c[0]>$MaxValue)
{$MaxValue=$c[0];}
}
}
else
{
if($b[0]>$c[0])
{
$MaxValue=$b[0];
}
else
{
$MaxValue=$c[0];
}
}
echo $MaxValue;
?>
如果我们使用升序,那么要访问最后一个元素,我们必须计算数组大小,并且arr[last_position]给出最高的顺序
但通过按降序排列数组,不需要计算数组大小。只需访问第一个数字,您将获得最高的数字
如您所见,它们是3个独立的数组,以[0]为键。这些数组是独立变量中的独立数组,还是“超级”数组?这3个数组来自一个分解函数,它仍然无法回答如何存储它们的问题。如果三个数组存储在一个大数组中(数组数组),您可以按照建议使用max
函数。如果它们是三个独立的变量,您也可以使用max
函数,但参数更多。1.您有三个独立的数组。2.打开Google->键入“数组php的最高值”我之所以发布这个问题,是因为它们是3个独立的变量,并提供了一些上下文(代码),否则无法帮助您。数组是否存储在一个数组中?是否有3个变量$arr1、$arr2和$arr3?您想做什么?@IlanHasanov:这些变量是如何存储的?是存储在三个单独的变量中,还是存储在另一个数组中?@MichaelKunst我已经添加了获取这些数组的方法。它给我的输出是每个值的第一个字母829。什么我错过了吗?合并甚至不是必需的,max
接受所有可比较的变量。输出829..每个数字的第一个字母no@IlanHasanov。对我来说效果很好。你的数组是..$array=array(0=>80,1=>20,2=>90);memy数组显示90是三个数组数组数组([0]=>80)数组([0]=>20)数组([0]=>90)只需复制我的代码..并在单独的页面中运行..即可获得结果..@IlanHasanov.工作正常。虽然此解决方案应该可以工作,但使用echo max($array);
将大大减少代码,甚至可能更快,因为它是本机核心函数…也不太容易出错。。。
$a1 = Array ( "0" => 80 );
$a2 = Array ( "0" => 20 );
$a3 = Array ( "0" => 90 );
$a4 = array_merge($a1,$a2);
$a5 = array_merge($a4,$a3);
echo '<pre>';
print_r(max($a5));
$array = array_merge(array(80),array(20),array(20));
$max = max($array);
sort() - sort arrays in ascending order
rsort() - sort arrays in descending order
asort() - sort associative arrays in ascending order, according to the value
ksort() - sort associative arrays in ascending order, according to the key
arsort() - sort associative arrays in descending order, according to the value
krsort() - sort associative arrays in descending order, according to the key
<?
$a=array(0 => 1300 );
$b=array(0 => 500 );
$c=array(0 => 1220 );
$MaxValue=0;
if($a[0]>$b[0])
{
$MaxValue=$a[0];
if($b[0]>$MaxValue)
{
$MaxValue=$b[0];
}
else
{
if($c[0]>$MaxValue)
{$MaxValue=$c[0];}
}
}
else
{
if($b[0]>$c[0])
{
$MaxValue=$b[0];
}
else
{
$MaxValue=$c[0];
}
}
echo $MaxValue;
?>