2016-04-07 19 views
-5

daha yüksek elementlerin miktarını alın:PHP kodları içinde bu var belli bir

$aNumbers = array(2,8,9,5.5,4,5.5,6,7,8,9,10,1,'NB'); 

Bundan ben 5.5'in üzerinde değerlerin miktarını ve kombine tüm sayıların ortalamasını belirlemesi gerekir. Yalnızca bir For Loop kullanarak/else yapısı ve count() işlevi varsa.

Bunu kendim çözmeye çalıştım, ancak hiçbir yerde internette yeterli bilgiyi bulamıyorum. Böyle

+7

_Bu sorunu çözmeyi denedim_ - Çok iyi! Çabanı görelim! – Federkun

+3

Bu bir tür ödev mi? Buna çok benziyor: http://stackoverflow.com/q/36470878/3933332 – Rizier123

+1

, böylece bütün bir öğrenci sınıfı bir ödeve sahip ve hepsi çözüm için ilk önce burada mı? – Federkun

cevap

0

deneyin şey:

<?php 

    $sum = 0; 
    $amount = 0; 
    $aNumbers = array(2, 8, 9, 5.5, 4, 5.5, 6, 7, 8, 9, 10, 1, 'NB'); 

    foreach ($aNumbers as $value){ 
     if($value > 5){ 
      $sum += $value; 
      $amount++; 
     } 
    } 

    echo "Sum : " . $sum . " - Average : ". ($sum/$amount); 

?> 
+0

Önerinizin "sadece döngü için" kuralını nasıl ihlal ettiğini seviyorum - gerçekten kötü bir yardım, ancak bir dereceye kadar etkili. :) – Sven

+0

@Sven bugün için çok fazla Java .. ^^ –

1

Bu yapmalıyım:

$aNumbers = array(2,8,9,5.5,4,5.5,6,7,8,9,10,1,'NB'); 

const HIGH_VALUE_CUTOFF = 5.5; 

$uncleanArrayCount = count($aNumbers); 
$cleanArray = array(); 
$highValueCount = 0; 
$sum = 0; 

for ($i = 0; $i < $uncleanArrayCount; $i++) { 
    if ($aNumbers[$i] > 0) { // catch only numbers 
     $sum += $aNumbers[$i]; 
     $cleanArray[] = $aNumbers[$i]; // builds an array of numbers 
    } 
    if ($aNumbers[$i] > HIGH_VALUE_CUTOFF) { 
     $highValueCount++; 
    } 
} 

$average = $sum/count($cleanArray); 

echo "Average: $average <br />"; 
echo "Numbers above " . HIGH_VALUE_CUTOFF . ": $highValueCount"; 

dahaki sefere, ne denedim sonrası. 'Twas senin için ödevini yapıyor eğlenceli!

İlgili konular