2016-07-15 4 views
0

Я использую это, чтобы вытащить некоторые данные facebook из CSVСуммирование возвращаемых значений из функций PHP

https://github.com/Maatwebsite/Laravel-Excel

public function lifetime_likes_by_gender_and_age_f18_24() 
{ 
    $result = $this->reader->select(array('lifetime_likes_by_gender_and_age_f18_24'))->get(); 
    return (int)$result->last()->sum(); 

} 

public function lifetime_likes_by_gender_and_age_f25_34() 
{ 
    $result = $this->reader->select(array('lifetime_likes_by_gender_and_age_f25_34'))->get(); 
    return (int)$result->last()->sum();; 
} 

public function lifetime_likes_by_female() 
{ 
    return $this->lifetime_likes_by_gender_and_age_f18_24() + $this->lifetime_likes_by_gender_and_age_f25_34(); 
} 

Проблема первое значение возвращается как 12 второй 112. Таким образом, ответ должен быть 124, но он возвращает 136, который предполагает, что он удваивает первое значение.

Любые причины, почему и как я могу это исправить? Версия PHP - 7.

+0

Если вы только что вернете возврат $ this-> lifetime_likes_by_gender_and_age_f18_24(), вы определенно получаете 12 каждый раз? – rchatburn

ответ

0

Я предполагаю, что метод select вводит состояние читателю относительно выбранных столбцов. Итак, когда вы запускаете метод 18_24, вы просто выбираете его, но тогда, когда вы запускаете 25_34, предыдущие столбцы никогда не были отбракованы, поэтому вы выбираете их снова.

Не могли бы вы, пожалуйста, попробуйте вместо

public function lifetime_likes_by_gender_and_age_f18_24() 
{ 
    $result = $this->reader->get(array('lifetime_likes_by_gender_and_age_f18_24')); 

    return (int)$result->last()->sum(); 
} 

public function lifetime_likes_by_gender_and_age_f25_34() 
{ 
    $result = $this->reader->get(array('lifetime_likes_by_gender_and_age_f25_34')); 

    return (int)$result->last()->sum(); 
} 

Я буду читать немного больше исходного кода библиотеки, но это должно быть.

Смежные вопросы