2016-07-15 8 views
0

ich dies mit aus einer CSV-Summieren zurückgegebenen Werte von Funktionen php

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

einige Facebook-Daten ziehen
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(); 
} 

Das Problem der erste Wert wird als 12 ist der zweite 112 So wird zurückgegeben die Antwort sollte 124 sein, aber es gibt 136, was darauf hindeutet, dass es den ersten Wert verdoppelt.

Gründe warum und wie kann ich es beheben? Die PHP-Version ist 7.

+0

Wenn Sie einfach zurückgeben $ this-> lifetime_likes_by_gender_and_age_f18_24() erhalten Sie auf jeden Fall 12 jedes Mal? – rchatburn

Antwort

0

Ich vermute, dass die select-Methode einen Status für den Leser in Bezug auf ausgewählte Spalten einführt. Also, wenn Sie die 18_24-Methode ausführen, wählen Sie nur, aber wenn Sie die 25_34 ausführen, wurden die vorherigen Spalten nie deaktiviert, so dass Sie sie erneut auswählen.

Könnten Sie bitte stattdessen

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(); 
} 

versuche ich ein bisschen mehr von der Bibliothek Quellcode lesen, aber das sollte es sein.

Verwandte Themen