Array ( [07:50] => Array ( [1] => Array ( [sira] => 1 [spot] => 23131 ) ) [08:00] => Array ( [1] => Array ( [sira] => 1 [spot] => 23130 ) ) [08:10] => Array ( [1] => Array ( [sira] => 1 [spot] => 23131 ) ) )Şu tarz bir arrayım var tabi gün boyu giden bu array ın key değerine en yakın saati nasıl bulabilirim. Liste gün boyu gittiği için örnek vermek gerekirse saat 14.21'de benim 14.15 e mi yoksa 14.30'a mı yakın onu bulmam lazım.
Array'in içindeki en yakın saati bulmak
6
●121
- 09-05-2020, 02:54:59
- 09-05-2020, 03:22:55Hocam ortalama 50-55 arası saat keyli array ve onların içinde de ortalama 10-25 arası array olacak.ata350 adlı üyeden alıntı: mesajı görüntüle
- 09-05-2020, 06:22:04uksort ile anahtarlarına göre bir diziyi kendi kurallarınız doğrultusunda sıralayabilirsiniz. Aşağıda diziyi o an ki saate en yakından en uzağa sıralıyorum, array_shift ile çekeceğiniz eleman en yakın olacaktır. Burda dikkat etmeniz gereken diziyi yeniden sıralamamız, eğer diziyi daha sonra farklı işlemler için kullanacaksanız ve sıralaması önemli ise önce başka bir değişkene atayıp daha sonra o dizi üzerinden işlem yapmanız olacak.
uksort($saatler, function ($p1, $p2){ $simdi = time(); $p1_parts = explode(":", $p1); $p1t = mktime($p1_parts[0], $p1_parts[1]); $p2_parts = explode(":", $p2); $p2t = mktime($p2_parts[0], $p2_parts[1]); if(abs($simdi - $p1t) < abs($simdi - $p2t)){ return -1; }elseif (abs($simdi - $p1t) > abs($simdi - $p2t)){ return 1; }else{ return 0; } }); print_r($saatler); $en_yakin = array_shift($saatler); - 09-05-2020, 17:08:56Teşekkürler hocam işime yaradıMet adlı üyeden alıntı: mesajı görüntüle