Avatar billede and_moe Nybegynder
17. december 2003 - 20:17 Der er 2 kommentarer og
1 løsning

Variabler må ikke være ens.

Jeg har en bunke variabler med navne som $fag1, $fag2, $fag3 ... , $fag7 etc. Jeg ved ikke på forhånd hvor mange jeg har. Ingen af dem må være ens. Hvordan tjekker jeg det?
Avatar billede fangel Nybegynder
17. december 2003 - 20:40 #1
hmm... lidt alternativt måske - kan nok laves på en meget smartere metode

<?php

$fag0 = "lala";
$fag1 = "trut";
$fag2 = "lala";

$i=0;
$arr = array();
while(isset(${'fag' . $i})){
  $arr[] = ${'fag' . $i};
  $i++;
}

$fejl = false;
foreach($arr AS $key1 => $line1){
  foreach($arr AS $key2 => $line2) if($line1 == $line2 AND $key1 != $key2) $fejl=true;
}

if($fejl) echo "nogle er ens";
else echo "ingen ens";

?>

giver "nogle er ens" - mens hvis du endre den sidste til noget anden giver den "ingen ens"...

$fag skal starte ved 0 - ellers skal du lige starte $i linien med $i=1...

Morten
Avatar billede jakoba Nybegynder
17. december 2003 - 20:45 #2
Hvis de har fået navne efter en simpel regel som den du antyder der:

1) navnene er "fag" fulgt af et tal
2) tal starter ved 1 og fortsætter opad uden mellemrum

Så er det rimeligt nemt af hitte ud af hvor mange der er:

$jeg_starter_ved = 1;
$jeg_slutter_foer = 2000;  // tal du er sikker på er for stort.
while ( true ) {
    $gaet = ( $jeg_starter_ved + $jeg_slutter_foer ) /2;
    if ( $gaet == $jeg_starter_ved ) break; 
    if( isset( ${"fag".$gaet} ) {
        $jeg_starter_ved = $gaet;  // forlad løkken. vi fandt tallet
    } else {
        $jeg_slutter_foer = $gaet;
    }
} //end of while loop

echo "Største navn er 'fag" .$jeg_starter_ved ."'.\n";

Det vigige er at formulere en fast regel og så at oveholde den regel. Når vi har det kan næsten hvadsomhelst programmeres.

mvh JakobA
Avatar billede jakoba Nybegynder
17. december 2003 - 20:47 #3
Pubad. jeg kommenterede galt.

    if ( $gaet == $jeg_starter_ved ) break;
    if( isset( ${"fag".$gaet} ) {
        $jeg_starter_ved = $gaet;  // forlad løkken. vi fandt tallet

skulle have været:

    if ( $gaet == $jeg_starter_ved ) break; // forlad løkken. vi fandt tallet
    if( isset( ${"fag".$gaet} ) {
        $jeg_starter_ved = $gaet;
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