Avatar billede webben Nybegynder
16. september 2004 - 15:09 Der er 9 kommentarer og
1 løsning

Find nærmeste værdi i array

Jeg har dette array:

Array
(
    [50] => Array
        (
            [navn] => Grøn
        )

    [100] => Array
        (
            [navn] => Rød
        )

    [150] => Array
        (
            [navn] => Blå
        )...

Jeg har så en variable:

$tal = 80;

Jeg vil så gerne finde det navn som er tættest på det tal sådan ned ad i hierakiet.
I dette tilfælde vil jeg så få værdien Grøn ud.

Nogen ideer, links eller?
Avatar billede avminarm Juniormester
16. september 2004 - 15:19 #1
noget i den her stil?

$tal = 80;
foreach($array as $key => $value){
if($key <= $tal){
  echo $value;
}
}
Avatar billede avminarm Juniormester
16. september 2004 - 15:22 #2
pladder - det kan da ikke bruges!
Avatar billede avminarm Juniormester
16. september 2004 - 15:26 #3
kunne dit array ikke ligeså godt hedde?:

$array= array(50 => "grøn", 100 => "rød", 150 => "blå");
Avatar billede webben Nybegynder
16. september 2004 - 15:28 #4
Hmmm, det gør det også :)
Avatar billede fri-hash Nybegynder
16. september 2004 - 15:29 #5
måske noget lignende

$prev_key = -1;
foreach($array as $key => $value){
if($key > $tal){
  if($prev_key == -1){
    echo "$tal er mindre end laveste key i array";
  } else {
    echo $array[$prev_key]['navn'];
  }
}
$prev_key = $key
}
Avatar billede fri-hash Nybegynder
16. september 2004 - 15:31 #6
aarh, glem mit forslag hvis dit array ser ud som avminarm siger
Avatar billede avminarm Juniormester
16. september 2004 - 15:33 #7
webben - jeg troede det var et flerdimensionelt array ;o), nå så kan min godt benyttes ;o)

<?
$array= array(50 => "grøn", 100 => "rød", 150 => "blå");

$tal = 80;
foreach($array as $key => $value){
if($key <= $tal){
  echo $value;
}
}
?>
Avatar billede webben Nybegynder
16. september 2004 - 15:35 #8
Yep, det virker da nogenlunde... hvis jeg sætter tal til at være 120 tager den både grøn og rød og udskriver :) Men det kan hurtigt løses... takker for hjælpen :)
Avatar billede avminarm Juniormester
16. september 2004 - 15:42 #9
nå ja - det havde jeg glemt at tage højde for :-)
Avatar billede detox Nybegynder
16. september 2004 - 17:01 #10
Du kunne osse bruge:

echo $array[(int)($tal/50)*50];
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester