获取数组子项的平均值,直到其他子项包含“xx”

时间:2016-06-02 20:45:25

标签: php arrays foreach

我正试图找到一种方法来提取几个数组的子项的平均值(最多80个) UNTIL 另一个子项具有一定的值。

完整代码包含以下内容:

$element = $html->find('table',3);

    $i = 0;
    foreach($element->find('tr') as $row){
    if($i >= 2){
      $racelapno = $row->find('td',0)->plaintext;
      $racelaptime = $row->find('td',1)->plaintext;
      $raceposition = $row->find('td',2)->plaintext;
      $racetyre = $row->find('td',3)->plaintext;
      $raceweather = $row->find('td',4)->plaintext;
      $racetemp = $row->find('td',5)->plaintext;
      $racehum = $row->find('td',6)->plaintext;
      $raceevent = $row->find('td',7)->plaintext;


      $racelap[$i] = Array();
      $racelap[$i][0] = $racelapno;
      $racelap[$i][1] = $racelaptime;
      $racelap[$i][2] = $raceposition;
      $racelap[$i][3] = $racetyre;
      $racelap[$i][4] = $raceweather;
      $racelap[$i][5] = $racetemp;
      $racelap[$i][6] = $racehum;
      $racelap[$i][7] = $raceevent;
    }
      $i+=1;
}

所以我想找到不同数组中所有$racetemp的平均值,直到数组在$raceevent上返回“pit”。

在这里浏览我找到了一种方法来查找所有看起来如下的数组的平均值:

$counter = 0;
$total = 0;
foreach($racelap as $row) {
    $counter++;
    $total += $row['5'];
}
$avgracetemp = $total / $counter;

但是现在我需要在$racelap[$i][7]包含“pit”时添加某种停止,但也会再次继续,直到它再次包含“pit”。

希望任何人都可以帮助我,我们感激不尽:)

1 个答案:

答案 0 :(得分:0)

如果我理解正确,可以在foreach中使用以下内容:

if (strpos($row['7'], 'pit') !== false) {
    $counter++;
    $total += $row['5'];
}