Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony2][SF][SF2] Problem z tablicą wielowymiarową
damianooo
post 2.01.2016, 11:13:19
Post #1





Grupa: Zarejestrowani
Postów: 493
Pomógł: 2
Dołączył: 15.07.2011
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Próbuję w tablicy wielowymiarowej zsumować pewne dane:

  1. namespace My\TyperkaBundle\Repository;
  2. use Doctrine\ORM\EntityRepository;
  3.  
  4. class TypeRepository extends EntityRepository {
  5.  
  6. public function getTest(){
  7.  
  8. // poniżej tablica otrzymana z zapytania sql:
  9. $result = array(
  10. 0 => array('suma' => '20', 'user' => 9, 'priority' => 9, 'matchday' => 1),
  11. 1 => array('suma' => '20', 'user' => 9, 'priority' => 9, 'matchday' => 2),
  12. 2 => array('suma' => '20', 'user' => 9, 'priority' => 9, 'matchday' => 3),
  13. 3 => array('suma' => '20', 'user' => 9, 'priority' => 9, 'matchday' => 4),
  14.  
  15. 4 => array('suma' => '20', 'user' => 1, 'priority' => 1, 'matchday' => 1),
  16. 5 => array('suma' => '20', 'user' => 1, 'priority' => 1, 'matchday' => 2),
  17. 6 => array('suma' => '20', 'user' => 1, 'priority' => 1, 'matchday' => 3),
  18. 7 => array('suma' => '20', 'user' => 1, 'priority' => 1, 'matchday' => 4),
  19. );
  20.  
  21. $sum_per_user = array();
  22. $users = array();
  23.  
  24. $users = array(0 => 9, 1 => 1);
  25.  
  26. for($i=0;$i<2;$i++){
  27. foreach ($result as $details){
  28. if($users[$i] == $details['user']){
  29. $sum_per_user[$users[$i]] = $sum_per_user[$users[$i]] + (int)$details['suma'];
  30. }
  31. }
  32. }


niestety wywala mi nastepujący błąd:

  1. Notice: Undefined offset: 9 in /var/www/typerka/src/My/TyperkaBundle/Repository/TypeRepository.php line 65


Co ciekawe , jak ten sam skrypt wykonam w zwykłym pliku .php (bez użycia Symfony) to skrypt dziala poprawnie.

Prawidłowy wynik który powinienem otrzymać to:

  1. array(2) {
  2. [9]=>
  3. int(80)
  4. [1]=>
  5. int(80)
  6. }


O co może chodzić Symfony ?

Go to the top of the page
+Quote Post
werdan
post 2.01.2016, 11:17:39
Post #2





Grupa: Zarejestrowani
Postów: 354
Pomógł: 100
Dołączył: 14.11.2013
Skąd: Płock

Ostrzeżenie: (0%)
-----


Odwołujesz się do $sum_per_user[9], które nie jest zdeklarowane w array.

Dodaj wczesniej, ze jesli nie ma w tabeli to wstawisz tam zero


  1. if(!isset($sum_per_user[$users[$i]])){
  2. $sum_per_user[$users[$i]] = 0;
  3. }
Go to the top of the page
+Quote Post
damianooo
post 2.01.2016, 11:25:29
Post #3





Grupa: Zarejestrowani
Postów: 493
Pomógł: 2
Dołączył: 15.07.2011
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Dzięki miałeś rację teraz działa

Pozdrawiam
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.04.2024 - 08:12