Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Najmniejsza wartość tablicy asocjacyjnej
Forum PHP.pl > Forum > Przedszkole
motyl-pl
Siemka, mam mały błachy problem otóż posiadam tablice asocjacyjną powiedzmy:

Kod
$godziny = '9.00,11.00,13.00,14.00,16.00';
$godziny_tablica = explode(",", $godziny);

$godzina_od = '12.00';
$godzina_do = '16.00';


I teraz tak chce znaleźć najmniejszą wartość z tablicy mieszczącą się od 12.00 do 16.00 (czyli powiedzmy że "13.00").
Jak to zrobić, bądź nakierujcie mnie jak możecie ?

Z góry dzięki biggrin.gif
Crozin
1. Pod $godziny_tablica masz normalną tablicę numeryczną, nie asocjacyjną.
2. Pętla, przekonwertowanie tekstu na godzinę, sprawdzenie czy mieści się w podanych przedziałach, sprawdzenie czy jest mniejsza od najniższej odnalezionej jak dotychczas, jeśli tak to podmiana najniższej wartości. I tak dla wszystkich elementów tablicy.
kefirek
  1. $godziny = '9.00,11.00,13.00,14.00,16.00';
  2. $godziny_tablica = explode(",", $godziny);
  3.  
  4. $godzina_od = '12.00';
  5. $godzina_do = '16.00';
  6.  
  7. $new_array = array();
  8. foreach($godziny_tablica AS $value){
  9. if($value >= $godzina_od && $value <= $godzina_do){
  10. $new_array[]=$value;
  11. }
  12. }
  13.  
  14.  
  15. echo min($new_array);
motyl-pl
kefirek dziękuje bardzo =)

Jeszcze mam takie pytanko a jak zrobić żeby np jeszcze wykluczyć wynik powiedzmy:

  1. $godziny = '9.00,11.00,13.00,14.00,16.00';
  2. $godziny_tablica = explode(",", $godziny);
  3.  
  4. $godzina_od = '12.00';
  5. $godzina_do = '16.00';
  6.  
  7. $new_array = array();
  8. foreach($godziny_tablica AS $value){
  9. if($value >= $godzina_od && $value <= $godzina_do){
  10. $new_array[]=$value;
  11. }
  12. }
  13.  
  14.  
  15. echo min($new_array);
  16.  


Teraz wywali godzinę 13.00 ale jeśli chce by drugi wynik wyrzucało a nie pierwszy to jak to zrobić ? próbowałem w ten sposób:

  1. $godziny = '9.00,11.00,13.00,14.00,16.00';
  2. $godziny_tablica = explode(",", $godziny);
  3.  
  4. $godzina_od = '12.00';
  5. $godzina_do = '16.00';
  6.  
  7. $new_array = array();
  8. foreach($godziny_tablica AS $value){
  9. if($value >= $godzina_od && $value <= $godzina_do && $value != "13.00"){
  10. $new_array[]=$value;
  11. }
  12. }
  13.  
  14.  
  15. echo min($new_array);
  16.  


Ale coś nie bardzo mi to wychodzi :|
kefirek
  1. echo $new_array[0].'</br>'; // wartosc najmniejsza
  2. echo $new_array[1].'</br>'; // wartosc druga
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.