Avatar billede dejbjerg Nybegynder
12. august 2005 - 15:45 Der er 7 kommentarer og
1 løsning

array unique - hvorfor virker det ikke??

Hvorfor viser select nr. 2 ikke de unikke værdier?
Koden til de 2 select er ens, bortset fra linien med array_unique.
Koden bliver eval'ed ind på siden.

Koden til den første select er: (array_unique er udkommenteret)

$dir="./assets/images/vi/";
$faction_array = array();
$output = "";

$output .= '<form name="test" action="'.$_SERVER[PHP_SELF].'" method="GET">';
$output .= '<select name="fa">';

    $mappe = opendir($dir) or die ("folder not found");
    while($fil = readdir($mappe)) {
      if ($fil != "." && $fil != "..") {
        $strenge_array = explode(" ",$fil); //array seperate path and filename
        $navn = $strenge_array['0']; //just use filename
        $ord_array = explode("_",$navn); //array filename chunks
        array_push($faction_array, $ord_array['0']);
      }//if 
    }//while
      /*$faction_array = array_unique($faction_array);*/ //HVORFOR??
      $ArraySize = sizeof($faction_array);
      for ($i=0;$i<$ArraySize;$i++) {
        $output .= '<option value="'.$faction_array[$i].'">'.$faction_array[$i].'</option>';
      }//for
   
$output .= '</select></form>';
return $output;


Koden til den anden select:
$dir="./assets/images/vi/";
$faction_array = array();
$output = "";

$output .= '<form name="test" action="'.$_SERVER[PHP_SELF].'" method="GET">';
$output .= '<select name="fa">';

    $mappe = opendir($dir) or die ("folder not found");
    while($fil = readdir($mappe)) {
      if ($fil != "." && $fil != "..") {
        $strenge_array = explode(" ",$fil); //array seperate path and filename
        $navn = $strenge_array['0']; //just use filename
        $ord_array = explode("_",$navn); //array filename chunks
        array_push($faction_array, $ord_array['0']);
      }//if 
    }//while
      $faction_array = array_unique($faction_array); //HVORFOR??
      $ArraySize = sizeof($faction_array);
      for ($i=0;$i<$ArraySize;$i++) {
        $output .= '<option value="'.$faction_array[$i].'">'.$faction_array[$i].'</option>';
      }//for
   
$output .= '</select></form>';
return $output;
Avatar billede dejbjerg Nybegynder
12. august 2005 - 15:47 #1
Avatar billede dejbjerg Nybegynder
12. august 2005 - 17:26 #2
meningen er at det skal fungere ligesom:
http://dejsign.dk/etomite/index.php?id=47&fa=English
Avatar billede sukos Juniormester
12. august 2005 - 21:09 #3
Måske fordi du får samme "$key" til en eller flere med samme "$value"?
Og derfor "$key" overskrives?
Avatar billede dejbjerg Nybegynder
12. august 2005 - 21:53 #4
har prøvet med:
$faction_array = array_values($faction_array);
$faction_array = array_unique($faction_array); //HVORFOR??
fatter hat!
Avatar billede dejbjerg Nybegynder
12. august 2005 - 22:00 #5
er ikke så stærk i arrays :/
Avatar billede dejbjerg Nybegynder
12. august 2005 - 22:43 #6
$output .= '<form name="test" action="'.$_SERVER[PHP_SELF].'" method="GET">';
$output .= '<select name="fa">';

    $mappe = opendir($dir) or die ("folder not found");
    while($fil = readdir($mappe)) {
      if ($fil != "." && $fil != "..") {
        $strenge_array = explode(" ",$fil); //array seperate path and filename
        $navn = $strenge_array['0']; //just use filename
        $ord_array = explode("_",$navn); //array filename chunks
        $faction_array[] = $ord_array['0'];
      }//if 
    }//while     
$unique_factions = array_unique($faction_array);
  foreach($unique_factions as $val)
  {
        $output .= '<option value="'.$val.'">'.$val.'</option>';
    }//foreach
$output .= '</select></form>';
return $output;
Avatar billede dejbjerg Nybegynder
12. august 2005 - 22:43 #7
virker nu

tak for hjælpen
Avatar billede dejbjerg Nybegynder
12. august 2005 - 23:44 #8
lukker
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