PHP sipariş numaralarının listesi arasında büyük fark almak nasıl?

3 Cevap php

Örneğin,

1,3,6,8,11,45,99

Sayılar arasındaki aralığı şudur:

2,3,2,3,34,54

Yani büyük fark 54 olduğunu.

Bu fonksiyonu uygulamak için nasıl?

function get_greatest_diff($arr_of_numbers)
{}

3 Cevap

Siz farklı seçenekleri bir sürü var:

  • Diziyi sıralamak, ardından ilk ve son öğeyi karşılaştırmak
  • Her eleman için, sonraki her eleman için karşılaştırın. Bellekte en farkı tutun.
  • Birleştirme-çeşit çeşit uygulamak, ancak bunun yerine orijinal kriteri değerlerin farkını döndürür.

Sen dizi ayrı ayrı az 2 elemanları vardır davayı ele almalıdır:

$maxDiff = -1;
for ($i = 0; $i + 1 < count($array); $i++) {
    $diff = $array[$i + 1] - $array[$i];
    if ($diff > $maxDiff)
        $maxDiff = $diff;
    }
}

Böyle bir şey yapmanız gerekir:

$greatest_diff = 0;

for($i = 0; $i < sizeof($arr_of_numbers) - 1; $i++)
{
    $current_diff = $arr_of_numbers[$i + 1] - $arr_of_numbers[$i];
    if($current_diff > $greatest_diff){
        $greatest_diff = $current_diff;
    }
}

echo $greatest_diff;