Clicky

Skocz do zawartości


Zdjęcie
- - - - -

foreach w foreach

8 odpowiedzi w tym temacie

  • Zaloguj się, aby dodać odpowiedź

#1 qbas-s

qbas-s

    Początkujący

  • Użytkownik
  • Pip
  • 80 postów

Napisano 10 czerwiec 2014 - 23:34

mam problem z wykonaniem zagnieżdżonej pętli foreach ($posts === $posts2)

 

<?php
foreach ($posts as $key => $value):
    echo $value['w_id'];
    foreach ($posts2 as $key2 => $value2):
        if ($value2['w_parent'] == $value['w_id']) {
            echo "test2";
        }
    endforeach;
endforeach;
?>

 

pierwsza pętla wykonuje się tylko raz tak jakby druga pętla inicjowała break. Poza frameworkiem kod wykonuje się prawidłowo.

Zmienne do widoku przesyłam standardowo poprzez set. Gdzie szukać problemu?


Kohana 3.3

#2 DeXTeD

DeXTeD

    Początkujący

  • Użytkownik
  • Pip
  • 16 postów

Napisano 11 czerwiec 2014 - 08:01

Pokaż co jest w zmiennych $posts i $posts2 (za pomocą var_dump).



#3 qbas-s

qbas-s

    Początkujący

  • Użytkownik
  • Pip
  • 80 postów

Napisano 11 czerwiec 2014 - 09:22

obie zmienne mają tą samą zawartość. Tablice pobieram jako obiekt 

 

Zawartość $posts:

 

 
object(Database_MySQL_Result)#34 (7) { ["_internal_row":protected]=> int(0) ["_query":protected]=> string(560) "SELECT `w`.`id` AS `w_id`, `w`.`id_item` AS `w_id_item`, `w`.`msg` AS `w_msg`, `w`.`date` AS `w_date`, `w`.`dir` AS `w_dir`, `w`.`photo` AS `w_photo`, `w`.`parent` AS `w_parent`, `w`.`rate_plus` AS `w_rate_plus`, `w`.`rate_minus` AS `w_rate_minus`, `u`.`id` AS `u_id`, `u`.`media_dir` AS `u_media_dir`, `u`.`profil_photo` AS `u_profil_photo`, IF(u.name = null or u.surname = null, u.username,concat(u.name,' ', u.surname)) AS `u_name` FROM `walltrips` AS `w` JOIN `users` AS `u` ON (`u`.`id` = `w`.`id_user`) WHERE `w`.`id_item` = '15' ORDER BY `w`.`date` DESC" ["_result":protected]=> resource(125) of type (mysql result) ["_total_rows":protected]=> int(3) ["_current_row":protected]=> int(0) ["_as_object":protected]=> bool(true) ["_object_params":protected]=> NULL }

 

 

Zawartości $value:

 

        object(stdClass)#42 (13) {
  ["w_id"]=>
  string(2) "32"
  ["w_id_item"]=>
  string(2) "15"
  ["w_msg"]=>
  string(51) " tempor incididunt ut labore et dolore magna aliqua"
  ["w_date"]=>
  string(19) "2014-06-10 15:48:22"
  ["w_dir"]=>
  string(15) "msg/2014/06/10/"
  ["w_photo"]=>
  string(20) "w58hkyuvs3teyyqruz9d"
  ["w_parent"]=>
  string(2) "25"
  ["w_rate_plus"]=>
  string(1) "0"
  ["w_rate_minus"]=>
  string(1) "0"
  ["u_id"]=>
  string(1) "7"
  ["u_media_dir"]=>
  string(24) "public/users/2014/05/11/"
  ["u_profil_photo"]=>
  string(12) "profil_photo"
  ["u_name"]=>
  string(13) "XXX YYY"
}
 
object(stdClass)#45 (13) {
  ["w_id"]=>
  string(2) "26"
  ["w_id_item"]=>
  string(2) "15"
  ["w_msg"]=>
  string(124) "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
  ["w_date"]=>
  string(19) "2014-06-05 12:33:50"
  ["w_dir"]=>
  string(15) "msg/2014/06/05/"
  ["w_photo"]=>
  string(20) "kbgwsdso1jct9fevfwwd"
  ["w_parent"]=>
  NULL
  ["w_rate_plus"]=>
  string(1) "0"
  ["w_rate_minus"]=>
  string(1) "0"
  ["u_id"]=>
  string(2) "75"
  ["u_media_dir"]=>
  string(24) "public/users/2014/05/11/"
  ["u_profil_photo"]=>
  string(12) "profil_photo"
  ["u_name"]=>
  string(11) "XXX YYY"
}
object(stdClass)#42 (13) {
  ["w_id"]=>
  string(2) "25"
  ["w_id_item"]=>
  string(2) "15"
  ["w_msg"]=>
  string(124) "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
  ["w_date"]=>
  string(19) "2014-06-05 12:28:17"
  ["w_dir"]=>
  string(15) "msg/2014/06/05/"
  ["w_photo"]=>
  string(20) "qqcw2oujs9s16xrf7kwn"
  ["w_parent"]=>
  NULL
  ["w_rate_plus"]=>
  string(1) "0"
  ["w_rate_minus"]=>
  string(1) "0"
  ["u_id"]=>
  string(1) "7"
  ["u_media_dir"]=>
  string(24) "public/users/2014/05/11/"
  ["u_profil_photo"]=>
  string(12) "profil_photo"
  ["u_name"]=>
  string(13) "XXX YYY"
}


Użytkownik qbas-s edytował ten post 11 czerwiec 2014 - 10:38

Kohana 3.3

#4 qbas-s

qbas-s

    Początkujący

  • Użytkownik
  • Pip
  • 80 postów

Napisano 11 czerwiec 2014 - 10:39

kiedy nie pobieram tablicy jako obiekt wtedy jest ok. Ciekawe dlaczego w przypadku obiektu nie działa

Użytkownik mck edytował ten post 11 czerwiec 2014 - 10:52
Nigdy nie cytujemy poprzedniego posta w całości.

Kohana 3.3

#5 mck

mck

    Jestę Blogerę

  • Admin
  • 1544 postów

Napisano 11 czerwiec 2014 - 10:50

Może dlatego, że w pehapie domyślnie obiekty są przekazywane przez referencje ;)



#6 qbas-s

qbas-s

    Początkujący

  • Użytkownik
  • Pip
  • 80 postów

Napisano 11 czerwiec 2014 - 10:54

Może dlatego, że w pehapie domyślnie obiekty są przekazywane przez referencje ;)

 

ale mimo, że tablice pod względem zawartości są identyczne to do widoku przesłałem je jako dwie różne zmienne. Napisałeś, że domyślnie czyli można w kohana pracować na dwóch identycznych obiektach bez referencji?


Kohana 3.3

#7 mck

mck

    Jestę Blogerę

  • Admin
  • 1544 postów

Napisano 11 czerwiec 2014 - 11:50

Jeśli operujesz na obiekcie Database_MySQL_Result, to w ilu kopiach nie przekazałbyś go do widoku i tak będziesz pracować cały czas na nim jednym.

Możesz spróbować sklonować obiekt, ale IMHO w widokach lepiej i wygodniej operować na tablicach obiektów (jest do tego metoda as_array()).



#8 qbas-s

qbas-s

    Początkujący

  • Użytkownik
  • Pip
  • 80 postów

Napisano 11 czerwiec 2014 - 11:54

właśnie dzięki as_array wszystko działa. Co jest wydajniejsze - tablica obiektu czy zwykły obiekt?


Kohana 3.3

#9 Potfur

Potfur

    Początkujący

  • Użytkownik
  • Pip
  • 55 postów

Napisano 11 czerwiec 2014 - 19:14

Value jest obiektem \stdClass (co pokazałeś w dumpach), to czemu odwołujesz się do niego jak do tablicy?

Skoro nie korzystasz z obiektówki (\stdClass nie ma metod) to używaj tablic






Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych