Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Sortowanie foreach po wyniku wewnętrznej pętli
Forum PHP.pl > Forum > Przedszkole
php11
Cześć,

  1. <ul>
  2. <?php foreach ($items as $key=>$item):
  3.  
  4. $extraFld = array();
  5. $extraFields = json_decode($item->extra_fields, false);
  6. foreach ($extraFields as $key=>$extraField) {
  7. $extraFld[ $extraField->id ] = $extraField->value;
  8. }
  9.  
  10.  
  11. //sort($extraFld[2]);
  12.  
  13.  
  14. ?>
  15. <li><?php echo $extraFld[2];?></li>
  16. <?php endforeach; ?>
  17. </ul>


$extraFld[2] zwraca datę (2017-11-12)
Jak posortować moją listę wg. tej właśnie daty?
Z góry dziękuję za pomoc :-)
wolguy
pokaż print_r($extraFld)
php11
  1. Array ( [1] => Zenek [2] => 2017-11-30 )
nospor
No to wypadaloby do items dodac twoje extra pola, potem posortowac items uzywajac usort() a dopiero potem zaczac cokolwiek wyswietlac gdy juz bedzie posortowane
php11
Cytat
do items dodac twoje extra pola


No właśnie nie wiem jak...
nospor
$items[$key]['twoje_jakies_extra_pole'] = 'wartosc_twoje_extra_pola';
php11
Czyli po pierwszym foreach dodać drugi?

Bo zupełnie nie wiem, jak się do tego zabrać
nospor
Czyli masz oddzielic logike aplikacji (przygotowanie danych) od ich wyswietlania. Im wczesniej to opanujesz tym mniejszy bedziesz tworzyl bajzel w swoim kodzie.

Lektura na dzis: MVC
php11
Okej, MVC do nauki, ale co mi to da, jak nawet nie wiem, jak ugryźć problem?
Gdyby ktoś podał coś konkretniej może ruszę :-)
nospor
Podalem ci konkretnie: najpierw sortujesz, potem wyswietlasz. Zadnej magii, same konkrety. A ty tylko jeczysz. Od jeczenia sie nie nauczysz, od pisania, tak tongue.gif
php11
Czy dobrze rozumiem, że mam stworzyć tablicę, w której przypiszę do $item pola dodatkowe i dopiero to wyświetlę?
$extraFields mogę pobrać dopiero w tej pętli.

  1. <?php foreach ($items as $key=>$item):
  2.  
  3. $extraFld = array();
  4. $extraFields = json_decode($item->extra_fields, false);
  5. foreach ($extraFields as $key=>$extraField) {
  6. $extraFld[ $extraField->id ] = $extraField->value;
  7. }
  8.  
  9.  
  10. // TUTAJ questionmark.gif?
  11.  
  12.  
  13. ?>
nospor
Przeciez ci podalem gotowa konstrukcje wczesniej....


$items[$key]['fields'] = $extraFields;
php11
Dzięki, ale poziom mojej wiedzy nie pozwala na rozwiązanie tego problemu.
Naprawdę kombinuję...
nospor
Przeciez w poprzednim poscie podalem ci gotowca. Jedyne co miales zrobic to KOPIUJ WKLEJ
wolguy
no i później array_multisort
nospor
Pozniej to juz pisalem co. Lepsze jest usort() - bardziej przyjazne.
php11
Niestety nie dałem rady mimo tysiąca prób...
Zlituje się ktoś i poda gotowca?

Dzięki
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.