-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

使用する

これを並べ替えてから、配列count/2+1項目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 を呼び出すことは OK ではありません!

于 2012-12-04T11:52:49.160 に答える
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 に答える
0

どうですか:

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

中間値バンは次のように取得できます。

$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 に答える