2015-02-01 2 views
-1

У меня есть следующийВыбрать ближайшие большие/меньшие элементы в массиве PHP

$ а = [100, 90, 80, 70, 60, 50, 40, 30, 20, 10]

$ V = 45

мне нужен простой способ найти ближайший больший/меньшие элементы $ v в $ A

Любые мысли?

Edited

ЭТО ПОЧЕМУ Я НЕ НРАВИТСЯ МОИ МЫСЛИ

<?php 
    $a = [100, 90, 80, 70, 60, 50, 40, 30, 20, 10]; 
    $v = 45; 
    $a[] = $v; 
    sort($a); 
    $nearestGreater = null; 
    $nearestLower = null; 
    foreach ($a as $key => $val) { 
     if ($val == $v) { 
      $nearestGreater = (isset($a[$key + 1])) ? $a[$key + 1] : $nearestGreater; 
      $nearestLower = (isset($a[$key - 1])) ? $a[$key - 1] : $nearestLower; 
      break; 
     } 
    } 
    var_dump($nearestGreater); 
    var_dump($nearestLower); 
    unset($a); 

Эта часть дерьмовой кода шахты и работает, но мне нужно знать, если есть лучшее решение (более простой). Я был NOT родился с книгой PHP в моих руках, и я все еще учусь. Если вам не нравится мой вопрос, пропустите его. Мне не нужен ваш высокомерный ответ.
Назад к бизнесу
Любой может УЛУЧШЕНИЯ этот код, чтобы сделать его лучше работать быстрее? Предположим, что $ a - 2000000 строк из моей базы данных.
Спасибо всем.

+2

Покажите нам ваши собственные мысли первый;) –

+1

Дубликат http://stackoverflow.com/questions/5464919/php-nearest-value-from-an-array –

+0

Я не» Мне нравятся мои мысли, что я прошу здесь мысли других людей. Соглашаться или не соглашаться ... Мне все равно @PatriceGahide. Так что хорошо провести день. – FranMercaes

ответ