Avatar billede budda Nybegynder
25. juli 2005 - 21:15 Der er 10 kommentarer og
1 løsning

Bytte 2 variabler

Jeg har 2 variabler hvor den ene skal være størrer end den anden ellers skal de byttes:
if($areal1 < $areal2) { $buffer1 = $areal1; $areal1 = $areal2; $areal2 = $buffer1; }

areal1 SKAL være størrer end areal2 ellers skal de byttes men det virker ikke
Avatar billede cautoo Nybegynder
25. juli 2005 - 21:35 #1
Altså.. den virker fint for mig:
$areal1 = 40;
$areal2 = 20;
if($areal1 < $areal2) { $buffer1 = $areal1; $areal1 = $areal2; $areal2 = $buffer1; }
echo "Areal1: " .$areal1. "<BR>";
echo "Areal2: " .$areal2. "<BR><BR>";

$areal1 = 20;
$areal2 = 40;
if($areal1 < $areal2) { $buffer1 = $areal1; $areal1 = $areal2; $areal2 = $buffer1; }
echo "Areal1: " .$areal1. "<BR>";
echo "Areal2: " .$areal2. "<BR>";
Avatar billede nielle Nybegynder
25. juli 2005 - 21:36 #2
Er du sikker på at de ligger som tal og ikke som strenge? Dette kunne nemlig forklare at det går galt.
Avatar billede budda Nybegynder
25. juli 2005 - 21:40 #3
det gør de nok :) Retter det gør de :)
Hvad skal så ændres?
Avatar billede cautoo Nybegynder
25. juli 2005 - 21:41 #4
evt. hvis det er strenge, kan du konvertere dem med
(int)$my_int_string

Derudover vil jeg anbefale at du benytter arrays til det..
så kan du blot tilføje størrelserne som her:
$areal[] = 5;
$areal[] = 3;
$areal[] = 2;
$areal[] = 6;
$areal[] = 1;
$areal[] = 4;

når du så vil have dem sorteret skriver du
sort($areal);

de kan nu hentes ved $areal[1] som så vil give det mindste tal..
Avatar billede nielle Nybegynder
25. juli 2005 - 21:41 #5
Er det heltal eller kommatal?
Avatar billede budda Nybegynder
25. juli 2005 - 21:43 #6
Well det kommer fra en søge side men input i..
Heltal
Avatar billede budda Nybegynder
25. juli 2005 - 21:43 #7
men = med
Avatar billede nielle Nybegynder
25. juli 2005 - 21:45 #8
Hvis tallene kommer ind som $areal1 = $_POST["areal1"] så er der gode chancer for at PHP opfatter dem som strenge.

... og så er løsningen (som cautoo allerede har angivet):

$areal1 = (int) $areal1;

- hvorefter de er heltal.
Avatar billede coderdk Praktikant
25. juli 2005 - 21:48 #9
Evt. en lille funktion hvis man skal bruge den flere gange. Dette demonstrerer en måde:

<?php

    $var1 = 2;
    $var2 = 1;
   
    echo "\$var1 = $var1 og \$var2 = $var2<br>";
   
    function switchvar( &$var1, &$var2 )
    {
        if ( $var1 > $var2 ) {
            $tmp = $var2;
            $var2 = $var1;
            $var1 = $tmp;
        }
    }

    switchvar( $var1, $var2 );
    echo "\$var1 = $var1 og \$var2 = $var2<br>";

?>
Avatar billede budda Nybegynder
25. juli 2005 - 22:03 #10
coder smid svar :)
Avatar billede coderdk Praktikant
26. juli 2005 - 15:25 #11
Yessir! :)
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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