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