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

DevConf 2017 - видео с конференции, успей до 17 июля | Проверенные VDS на SSD в Европе и России

Тема в разделе "Вопросы по программированию на РНР", создана пользователем Sav2907, 12 янв 2017.

  1. Sav2907

    Sav2907 Новичок

    Сообщения:
    32
    Ваш город:
    Ternopil, Ukraine
    Adress:
    Ternopil, Ukraine
    Country:
    Location on Map:
    Привет, есть код:
    Код:
            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>';
            }
    Он выводит следующее:
    [​IMG]
    Задача:
    Нужно в черные клетки вставить количество красных записей, то есть
    13
    9
    5
    ...
     
  2. WMix

    WMix герр M:)ller

    Сообщения:
    5.655
    Adress:
    Waiblingen, Germany
    Country:
    Location on Map:
    PHP:
    foreach(){
        
    $count 0;
        for(){
            ...
            
    $count += intval(!$tool1Found);
            
    // ??? $count += intval(!$tool2Found);
        
    }
    }
     
    Sav2907 нравится это.
  3. Sav2907

    Sav2907 Новичок

    Сообщения:
    32
    Ваш город:
    Ternopil, Ukraine
    Adress:
    Ternopil, Ukraine
    Country:
    Location on Map:
    Код:
    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
     
  4. WMix

    WMix герр M:)ller

    Сообщения:
    5.655
    Adress:
    Waiblingen, Germany
    Country:
    Location on Map:
    а ты не в том месте складываешь да и не так, да и подумать немешает
     
  5. Sav2907

    Sav2907 Новичок

    Сообщения:
    32
    Ваш город:
    Ternopil, Ukraine
    Adress:
    Ternopil, Ukraine
    Country:
    Location on Map:
    разобрался, спасибо за подсказку
     
  6. Sav2907

    Sav2907 Новичок

    Сообщения:
    32
    Ваш город:
    Ternopil, Ukraine
    Adress:
    Ternopil, Ukraine
    Country:
    Location on Map:
    Код:
            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>';
            }