2014-09-25 1 views
0

В массиве есть ряд ключей с соответствующими значениями.Потенциальное положение и значение элемента в массиве

Давайте предположим, что массив выглядит следующим образом:

Array 
(
    [0] => 0.00 
    [2] => 0.60 
    [5] => 1.00 
    [1] => 0.30 
    [3] => 0.90 
) 

Таким образом, это не ключ 4.

Поскольку массив на самом деле целый ряд элементов, значение элемента с ключом 4 будет 0,90, или значение элемента с первым значением нижнего ключа.

Что будет наилучшей практикой для достижения, чтобы получить значение 0.90 для значения 4 (которое не существует в массиве).

Надеюсь, что мой вопрос в том, чтобы не усложнять ... Спасибо заранее!

+1

Почему значение элемента 4 равно 0,9? У вас уже есть элемент со значением 0,9 (элемент 3). Какова логика этих ценностей? Является ли значение отсутствующего элемента всегда равным значению предыдущего существующего элемента? –

+0

, как я понимаю, здесь есть два разных правила: '[4] => 0,9', потому что значение' 0,9' находится в позиции '[4]' (хотя ключ на самом деле '[3]'). Другое правило, как вы сказали (* или значение элемента с первым нижним значением ключа *), должно быть значением в ключе '[0]' (первый ключ имеет меньшее значение, чем '[4]'), тогда он должен be '[4] => 0'. Так что же вы действительно хотите здесь? (Я даже не уверен, правильно ли я понимаю). –

ответ

1

Я бы не назвал это лучшей практикой, но это даст вам значение, вы ожидаете, что: значения в первой записи в массиве с ключом ниже заданного одного.

function findValue($i, $values) 
{ 
    if ($i < 0) die ("Can't compute."); 

    if (!isset($values[$i])) 
    { 
     return findValue($i-1, $values); 
    } 
    else 
    { 
     return $values[$i]; 
    } 
} 


$values = array(
0 => 0.0, 
2 => 0.6, 
5 => 1.0, 
1 => 0.3, 
3 => 0.9 
); 

$searchedValue = findValue(4, $values); 
Смежные вопросы