Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Optymalizacja petli., Pewnie da sie lepiej... ;)
specialplan
post 7.03.2008, 16:51:21
Post #1





Grupa: Zarejestrowani
Postów: 206
Pomógł: 21
Dołączył: 1.09.2006
Skąd: Edinburgh

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


Mam sobie dwa obiekty, generowane niewazne w zasadzie jak:

Kod
$oStatus:

object(ArrayObject)#9 (3) { [0]=>  array(1) { ["true"]=>  string(14) "Group 1" } [1]=>  array(1) { ["false"]=>  string(19) "Group 2" } [2]=>  array(1) { ["NULL"]=>  string(19) "Group 3" } }


oraz

Kod
$oSortable

object(SprockArrayObject)#8 (6) { ["Entry 1"]=>  bool(false) ["Entry 2"]=>  bool(false) ["Entry 3"]=>  bool(false) ["Entry 4"]=>  bool(false) ["Entry 5"]=>  bool(true) ["Entry 6"]=>  NULL }


I chcialbym je sobie wyswietlic ladnie pogrupowane w panelu, wiec zapuszczam (prosze sie nie czepiac gwaltu na MVC - to testowy skrypt):

  1. <?php
  2. for ($oIterator = $oStatus->getIterator(); $oIterator->valid(); $oIterator->next())
  3. {
  4.  $oMatch = new ArrayObject($oIterator->current());
  5.  echo '<li style="margin-bottom: 5px; display: block;">';
  6.  echo $oMatch->getIterator()->current();
  7. echo '<ul>';
  8. for ($oIt = $oSortable->getIterator(); $oIt->valid(); $oIt->next())
  9. {
  10. $sCurrent = var_export($oIt->current(), true);
  11. if ($sCurrent == $oMatch->getIterator()->key())
  12. {
  13. echo '<li>';
  14. echo $oIt->key();
  15. echo '</li>';
  16. }  
  17.  }
  18.  echo '</ul>';
  19.  echo '</li>';
  20. }
  21. ?>


W wyniku czego otrzymuje efekt jaki chcialem, czyli:

  1. <li style="margin-bottom: 5px; display: block;">
  2. Group 1
  3. <ul>
  4. <li>Entry 5</li>
  5. </ul>
  6. </li>
  7. <li style="margin-bottom: 5px; display: block;">
  8. Group 2
  9. <ul>
  10. <li>Entry 1</li>
  11. <li>Entry 2</li>
  12. <li>Entry 3</li>
  13. <li>Entry 4</li>
  14. </ul>
  15. </li>
  16. <li style="margin-bottom: 5px; display: block;">
  17. Group 3
  18. <ul>
  19. <li>Entry 6</li>
  20. </ul>
  21. </li>


I teraz moj problem: nie podoba mi sie zapuszczenie petli wewnatrz innej petli - nie wydaje mi sie to byc zbyt wydajnym rozwiazaniem. Ma ktos pomysl jak rozwiazac to w inny, wydajniejszy sposob? Czy tez moze sie nie da?

Pzdr
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: 19.07.2025 - 15:32