2016-04-14 7 views
1

ist habe ich folgendes:Wie ein assoziatives Array suchen, wenn ein Wert zwischen zwei Elementen

I 14.50

Und die folgende assoziatives Array einen bestimmten Wert haben:

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

Does weiß, wie ich das assoziative Array überprüfen kann, in welcher Zeile die 14,50 zwischen Element a & b ist. In der Beispielzeile 2.

Ich möchte den Wert cat bekommen. Wenn wäre der Wert 4 sein Ich möchte den ersten Wert 'Haus' geben ...

Bitte Beratung :)

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

Können Sie zeigen den Code des assoziativen Arrays, bitte? –

+0

siehe oben. Also in diesem Fall, wo der Wert von sagen wir 7,75 ist zwischen dem Element 'BEGIN' und Element 'Eind' ... in diesem Fall die [1] –

+0

Er ... Es gibt keine 'CAT' in Ihrem Code, den Sie gebucht haben . ': (' –

Antwort

0

ich das tat und es funktionierte:

<?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']; 
} 

?> 

Ausgang: Katze

Es ist eigentlich eine grundlegende Programmierung. Sie müssen nur durch die Zeilen iterieren und überprüfen, ob die gewünschte Anzahl zwischen den Variablen begin und end liegt. In diesem Fall a und b.

Dann echo den Wert, den Sie wollen, oder etwas anderes tun.

In diesem Code, wenn $number = 12;, es echo würde

housecat

Sie wollen also nicht, um zu überprüfen, ob es größer oder gleich ist, sondern nur prüfen, ob es größer ist und nicht gleich b.

So:

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

Ja, du hast absolut recht, ich war nur auf der Strecke Re. foreach ($ Zeilen als $ rows5 => $ Wert) { \t $ uursoort = $ value ['uursoort']; \t $ Projekt = $ Wert ['Projektcode']; \t \t if ($ uursoort === 'Reisuur') { Ich habe das schon mehrmals getan. Ich weiß nicht, warum ich das hier vermisst habe, haha. Danke, Phiter. –

+0

Das ist toll! .. – Fil

+0

@ESchumie, die Annahme einer akzeptierten Antwort kann den zukünftigen Benutzern helfen, eine Anleitung zu haben;) – Phiter