-4

我有这个代码:

<?php
function maxvalue() {
    $a=array(12,17,4,25,8);
    $temp=$a[0];
    for ($i=0; $i<=3; $i++) {
        if($temp<$a[$i+1]) {
            $temp=$a[$i+1]; 
        }
    }
    echo $temp."<br>";
}
maxvalue();
?>

此代码将显示最大数量 {25}。但我想显示中间的数字。我怎么做 ?

4

5 回答 5

4

利用

arsort为此,然后遍历数组count/2+1item no ,您将获得您的号码

于 2012-12-04T11:50:47.700 回答
1

非动态方式

<?php
function maxvalue()
{
    $a = array(12,17,4,25,8);
    return $a[2];
}

echo maxvalue();
?>

动态方式

<?php
function maxvalue()
{
    $a = array(12,17,4,25,8);
    $middle = floor(count($a) / 2);
    return $a[$middle];
}

echo maxvalue();
?>

但是调用这个方法/函数 maxvalue 是不行的!

于 2012-12-04T11:52:49.160 回答
0

怎么样:

$temp;
$midvalue = $temp / 2;
echo "Midvalue: " . $midvalue;
于 2012-12-04T11:54:50.260 回答
0

中间值 van 采用:

$a=array(12,17,4,25,8);

function arMiddle($ar) {
    if (!is_array($ar)) {
        trigger_error("Not an array");
    }

    $c = count($ar);

    if ($c%2==0) {
        trigger_error("Equal number of records, no middle");
    }   

    $m = floor($c/2);
    sort($ar);

    return $ar[$m];
}


print arMiddle($a);

输出将是 12。

于 2012-12-04T11:56:11.010 回答
0

我想你想要的是Median然后你可以使用:

$a = array(12,17,4,25,8);
rsort($a);
echo $a[round(count($a) / 2) - 1];

输出

 12 

现场演示

于 2012-12-04T12:01:47.620 回答