Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Najmłodsza modyfikacja w pętli
Forum PHP.pl > Forum > Przedszkole
ZenekN
Cześć mam pętlę foreach, chciałbym postawić warunek jeśli jest to najmłodsza modyfikacja to zrób coś smile.gif


  1. foreach($foo as $bar)
  2. {
  3. if($bar['modified] = jest najmłodsza)
  4. {
  5. echo 'zrob cos'
  6. }
SmokAnalog
Jak pobierasz te dane? Jeśli: 1) to nie baza danych, 2) potrzebujesz tylko ten jeden element i 3) elementy nie są posortowane, to musisz po prostu przeiterować wszystkie i odnaleźć ten najmłodszy.

Pół-pseudokod PHP:

  1. $najmlodszyElement = null;
  2.  
  3. foreach ($elementy as $element) {
  4. if ($najmlodszyElement === null || $element jest młodszy niż $najmłodszyElement) {
  5. $najmłodszyElement = $element;
  6. }
  7. }
trueblue
  1. $array = [['a' => 1, 'modified' => -2], ['b' => 2, 'modified' => 3]];
  2. $min = min(array_column($array, 'modified'));
  3. $index = array_keys(array_column($array, 'modified'), $min)[0];
  4. print_r($array[$index]);

Zwraca pierwszy element z tablicy, który pod indeksem modified ma najmniejszą wartość.

Pytanie czy będziesz w zależności od elementu czy jego wartości modified wykonywał różne akcje? Bo jeśli nie, to nie ma sensu szukanie najmniejszej (jeśli choć jedna w tablicy nie jest null).
SmokAnalog
@trueblue - bardzo niewydajne rozwiązanie, jeśli danych jest dużo. Poza tym skąd wiesz, że min zadziała w jego przypadku?

Poza tym, jak już to max, a nie min.
trueblue
SmokAnalog,
nie wiem czy zadziała min, może zadziała max, a może nie zadziała min, ani max. Podałem mu przykład, tak jak Ty pseudokod.
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.