Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Najmłodsza modyfikacja w pętli
ZenekN
post
Post #1





Grupa: Zarejestrowani
Postów: 419
Pomógł: 5
Dołączył: 7.08.2012

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


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. }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
SmokAnalog
post
Post #2





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


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. }
Go to the top of the page
+Quote Post
trueblue
post
Post #3





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


  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).


--------------------
Go to the top of the page
+Quote Post
SmokAnalog
post
Post #4





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


@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.

Ten post edytował SmokAnalog 19.12.2017, 23:01:26
Go to the top of the page
+Quote Post
trueblue
post
Post #5





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


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.


--------------------
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 Aktualny czas: 21.08.2025 - 02:51