2016-04-14 3 views
1

я следующие:Как искать ассоциативный массив, если значение находится между двумя элементами

У меня есть определенное значение 14,50

И следующий ассоциативный массив:

    element a  element b  element c 
row 1    8    12    house 
row 2    12    15    cat 
row 3    17    20    pizza 

ни у кого знаю, как я могу проверить ассоциативный массив, в котором строка 14.50 находится между элементом a & b. В строке примера 2.

Я хочу получить значение cat. Если значение будет 4, я хочу, чтобы дать первое значение 'дом' ...

Пожалуйста совет :)

Array 
    (
     [0] => Array 
      (
       [medewerker] => 799 
       [datum] => 2016-04-14 00:00:00 
       [uursoort] => Reisuur 
       [uurcode] => RNV 
       [project] => 
       [begin] => 7.50 
       [eind] => 8.00 
       [uren] => 0.5 
       [cumulatiefOud] => 0 
       [cumulatief] => 0 
       [overuren125] => 0 
       [overuren150] => 0 
     ) 

     [1] => Array 
      (
       [medewerker] => 799 
       [datum] => 2016-04-14 00:00:00 
       [uursoort] => Werkuur 
       [uurcode] => DNV 
       [project] => 
       [begin] => 8.00 
       [eind] => 16 
       [uren] => 8 
       [cumulatiefOud] => 0 
       [cumulatief] => 8 
       [overuren125] => 0 
       [overuren150] => 0 
     ) 

     [2] => Array 
      (
       [medewerker] => 799 
       [datum] => 2016-04-14 00:00:00 
       [uursoort] => Werkuur 
       [uurcode] => DEV125 
       [project] => 
       [begin] => 8.00 
       [eind] => 16.25 
       [uren] => 0.25 
       [cumulatiefOud] => 8 
       [cumulatief] => 8.25 
       [overuren125] => 0.25 
       [overuren150] => 0 
     ) 
+0

Можете ли вы показать код ассоциативного массива, пожалуйста? –

+0

см. Выше. Итак, в этом случае, если значение let say 7.75 находится между элементом «BEGIN» и элементом «Eind» ... в этом случае [1] –

+0

Er ... В вашем коде, который вы отправили, нет «CAT» , ': (' –

ответ

0

Я сделал это, и она работала:

<?php 

$arr = array(); 
$arr[1]['a'] = 8; 
$arr[1]['b'] = 12; 
$arr[1]['c'] = 'house'; 
$arr[2]['a'] = 12; 
$arr[2]['b'] = 15; 
$arr[2]['c'] = 'cat'; 
$arr[3]['a'] = 17; 
$arr[3]['b'] = 20; 
$arr[3]['c'] = 'pizza'; 

$number = 14.5; 
foreach($arr as $row) 
{ 
    if ($number >= $row['a'] && $number <= $row['b']) 
    echo $row['c']; 
} 

?> 

Выход: кошка

На самом деле это основное программирование. Вам просто нужно перебирать строки и проверять, находится ли число, которое вы хотите, между переменными begin и end. В этом случае a и b.

Тогда echo ценность, которую вы хотите, или сделать что-то еще.

В этом коде, если $number = 12;, было бы эхо

Housecat

Таким образом, вы не хотите, чтобы проверить, если она больше или равна, но вместо того, чтобы просто проверить, если он больше и не соответствует b.

Как это:

if ($number > $row['a'] && $number <= $row['b']) 
+0

Да, вы абсолютно правы. Я был просто внедорожник число рейнольдса foreach ($ rows as $ rows5 => $ value) { \t $ uursoort = $ value ['uursoort']; \t $ project = $ value ['projectcode']; \t \t if ($ uursoort === 'Reisuur') { Я делал то же самое уже несколько раз. Не знаю, почему я пропустил этот ха-ха. Спасибо, Phiter. –

+0

Это замечательно! .. – Fil

+0

@ESchumie, получение принятого ответа может помочь будущим пользователям иметь руководство;) – Phiter

Смежные вопросы