Avatar billede nicocarlos Nybegynder
08. august 2004 - 20:56 Der er 9 kommentarer og
1 løsning

Hvordan kan jeg fjerne en variabel hvis den er = 0

Jeg har følgende:
$lost=2;
$won=2;

og så gør jeg følgende:
print "$lost and $won";

Og de skal være på samme linje.

Problemet kommer så når $won=0 el. $lost=0 dvs:
$lost=0;
$won=2;

print "$won and $lost";

Der skal den automatisk fjerne $lost eller ihverfald undlade den hvis den er = 0

Håber at der er en som kan hjælpe. :)
Avatar billede krydset Nybegynder
08. august 2004 - 20:59 #1
$lost=0;
$won=2;

if($lost == 0) {
    echo $won;
} else {
    echo "$won $lost";
}
Avatar billede nicocarlos Nybegynder
08. august 2004 - 21:03 #2
hmm, er der ikke andre metoder, fordi jeg skal lave den med 9 variabler og det bliver lidt indviklet med alle de if/else, men det kan sikkert ikke lave anderledes :)
Og da de alle sammen kan blive 0, bliver det rimelig indviklet på den måde.
Det skal vel også være sådan her: :)
$lost=0;
$won=2;

if($lost == 0) {
    echo $won;
} elseif($won == 0) {
    echo "$lost";
} else {
    echo "$lost and $won"
}

H¨ber lidt på en bedre metode.. :)
Avatar billede krydset Nybegynder
08. august 2004 - 21:06 #3
Det var ikke det du skrev til at starte med.
Prøv at forklare hvad det er du vil i spm text. da du vil få hjælp meget hurgtigere.
JOw der er sikkert en anden metode men jeg kender den ikke !!
Avatar billede nicocarlos Nybegynder
08. august 2004 - 21:11 #4
dårligt forklaret af mig, men det var bare et eksempel, så jeg kunne se hvilke løsnings metoder der var til stede.. :)
Avatar billede 2c Nybegynder
08. august 2004 - 22:29 #5
Nu er jeg ikke php ekspert, men kan man ikke gøre sådan her:
if(!$lost)
  echo "$lost";
if(!$won)
  echo "$won";

Hvis man kan vil det ihvertfald kun fylde 18 linier.
Ellers kan du jo bare med alle gøre sådan her:
if($lost != 0)
    echo $lost;
med alle.
Det vil også kun fylde 18 linier.
Avatar billede coderdk Praktikant
08. august 2004 - 23:03 #6
$resultat = ( $won == 0 ? '' : "$won won<br>" );
$resultat .= ( $lost == 0 ? '' : "$lost lost<br>" );

echo $resultat;

Noget a la det?
Avatar billede sostack Nybegynder
09. august 2004 - 12:54 #7
<?php
$arr = get_defined_vars(); //finder alle definerede variabler
foreach($arr as $key => $value)
{
    if($value == 0)
    {
        unset($key); //"sletter" variablen, hvis værdien = 0
    }
}
?>

//sostack
Avatar billede coderdk Praktikant
09. august 2004 - 13:02 #8
Tror kun sostack læste titlen :)
Her er en anden måde:

$resultat = array();
if ( $won != 0 ) $resultat[] = $won;
if ( $lost != 0 ) $resultat[] = $lost;
echo implode( " and ", $resultat );
Avatar billede nicocarlos Nybegynder
08. september 2004 - 21:10 #9
coderdk, lig svar, jeg brugte din løsning, virker fint
Avatar billede coderdk Praktikant
08. september 2004 - 23:31 #10
Yes, yes :)
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