Подсчитать количество красных

Sav2907

Новичок
Привет, есть код:
Код:
        foreach ($data as $employeeid => $rows) {

            
            for ($i = 0; $i < count($rows); $i++) {
                
                $tool1Found = $tool2Found = false;
                if ($i > 0) {                   
                    for ($j = $i - 1; $j >= 0; $j--) {
                        $previousSetup = $rows[$j];                       
                        $tool1Found = $tool1Found || in_array($rows[$i]['Tool1Identifier'], $previousSetup);
                        $tool2Found = $tool2Found || in_array($rows[$i]['Tool2Identifier'], $previousSetup);
                        
                        if ($previousSetup['Tool1Identifier'] !== '' && $previousSetup['Tool2Identifier'] !== '') break;                           
                    
                    }
                    
                }
                echo sprintf('<tr><td>%s</td><td><span style="color: %s;">%s</span></td><td><span style="color: %s;">%s</span></td></tr>', ($i + 1), ($tool1Found ? 'green' : 'red'), $rows[$i]['Tool1Identifier'], ($tool2Found ? 'green' : 'red'), $rows[$i]['Tool2Identifier']);
                
            }                       
            echo '<tr><td>'.$rows[0]['PersonnelNo'].'</td><td class="black" colspan="2"> </td></tr>';
        }
Он выводит следующее:

Задача:
Нужно в черные клетки вставить количество красных записей, то есть
13
9
5
...
 

WMix

герр M:)ller
Партнер клуба
PHP:
foreach(){
    $count = 0;
    for(){
        ...
        $count += intval(!$tool1Found);
        // ??? $count += intval(!$tool2Found);
    }
}
 

Sav2907

Новичок
PHP:
foreach(){
    $count = 0;
    for(){
        ...
        $count += intval(!$tool1Found);
        // ??? $count += intval(!$tool2Found);
    }
}
Код:
foreach ($data as $employeeid => $rows) {
            $count = 0;          
            for ($i = 0; $i < count($rows); $i++) {  
                $count += intval($tool1Found == true);                      
                $tool1Found = $tool2Found = false;
               
                if ($i > 0) {                  
                    for ($j = $i - 1; $j >= 0; $j--) {
                        $previousSetup = $rows[$j];                      
                        $tool1Found = $tool1Found || in_array($rows[$i]['Tool1Identifier'], $previousSetup);
                        $tool2Found = $tool2Found || in_array($rows[$i]['Tool2Identifier'], $previousSetup);
                       
                        if ($previousSetup['Tool1Identifier'] !== '' && $previousSetup['Tool2Identifier'] !== '') break;                          
                           
                    }                  
                }
           
           
                echo sprintf('<tr><td>%s</td><td><span style="color: %s;">%s</span></td><td><span style="color: %s;">%s</span></td></tr>', ($i + 1), ($tool1Found ? 'green' : 'red'), $rows[$i]['Tool1Identifier'], ($tool2Found ? 'green' : 'red'), $rows[$i]['Tool2Identifier']);
               
               
           
            }          
            echo '<tr><td class="black">Таб.'.$employeeid.'</td><td class="black" colspan="2">Налаштувань '.$count.'</td></tr>';
        }
Вышла сумма первой записи левого столбца 10, а должно быть 6
 

WMix

герр M:)ller
Партнер клуба
а ты не в том месте складываешь да и не так, да и подумать немешает
 

Sav2907

Новичок
Код:
        foreach ($data as $employeeid => $rows) {
            $count = 0;           
            for ($i = 0; $i < count($rows); $i++) {   
                    
                        
                $tool1Found = $tool2Found = false;
                
                if ($i > 0) {               
                    for ($j = $i - 1; $j >= 0; $j--) {
                        $previousSetup = $rows[$j];   
                        
                        $tool1Found = $tool1Found || in_array($rows[$i]['Tool1Identifier'], $previousSetup);
                        $tool2Found = $tool2Found || in_array($rows[$i]['Tool2Identifier'], $previousSetup);
                        
                        if ($previousSetup['Tool1Identifier'] !== '' && $previousSetup['Tool2Identifier'] !== '') break;                           
                            
                    }   
                
                }
                
            $count += ($rows[$i]['Tool1Identifier'] > '0' ? intval(!$tool1Found) : '') + ($rows[$i]['Tool2Identifier'] > '0' ? intval(!$tool2Found) : '');
            
                echo sprintf('<tr><td>%s</td><td><span style="color: %s;">%s</span></td><td><span style="color: %s;">%s</span></td></tr>', ($i + 1), ($tool1Found ? 'green' : 'red'), $rows[$i]['Tool1Identifier'], ($tool2Found ? 'green' : 'red'), $rows[$i]['Tool2Identifier']);
                
                
            
            }   
            
            echo '<tr><td class="black">Таб.'.$employeeid.'</td><td class="black" colspan="2">Налаштувань '.$count.'</td></tr>';
        }
 
Сверху