Avatar billede kjeldsted Novice
18. december 2008 - 15:44 Der er 4 kommentarer og
1 løsning

Array_search() problem

Hej alle.

Jeg har et lille problem med den følgende kode:

$letters = array();
$u = 47;
foreach(range('0','9') as $i)
{
    array_push($letters,$i);
    $u++;
   
}
foreach(range('a','z') as $i)
{
    array_push($letters,$i);
    $u++;
}
foreach(range('A','Z') as $i)
{
    array_push($letters,$i);
    $u++;
}

$kryp[1] = str_split($pass);
echo array_search('g',$letters).'<br>';

Problemet er at hvis jeg i array_search søger efter et tal får jeg et rigtigt resultat, men søger jeg efter et bogstav får jeg bare 0. Så den kan ikke finde fx g. Hvordan kan dette være?

Hvis jeg benytter print_r() får jeg dette resultat:
Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7 [8] => 8 [9] => 9 [10] => a [11] => b [12] => c [13] => d [14] => e [15] => f [16] => g [17] => h [18] => i [19] => j [20] => k [21] => l [22] => m [23] => n [24] => o [25] => p [26] => q [27] => r [28] => s [29] => t [30] => u [31] => v [32] => w [33] => x [34] => y [35] => z [36] => A [37] => B [38] => C [39] => D [40] => E [41] => F [42] => G [43] => H [44] => I [45] => J [46] => K [47] => L [48] => M [49] => N [50] => O [51] => P [52] => Q [53] => R [54] => S [55] => T [56] => U [57] => V [58] => W [59] => X [60] => Y [61] => Z

Så der er altså et g i arrayet, men der findes ikke et resultat. Hvorfor?

På forhånd tak, Jens Kjeldsted
Avatar billede erikjacobsen Ekspert
18. december 2008 - 15:46 #1
echo array_search('g',$letters,true).'<br>';
Avatar billede erikjacobsen Ekspert
18. december 2008 - 15:56 #2
Jeg kan ikke lige vente på du opdager det næste problem. Det med at variabler ikke har erklærede typer, og at PHP gætter lidt, det er faktisk et problem her.

Siger du
  var_dump($letters);
vil du se, at værdierne ikke har samme type. Jeg ville løse det ved at indsætte 'x0','x1', optil 'xZ', og selvfølge søge med et 'x' foran.
Avatar billede kjeldsted Novice
18. december 2008 - 16:10 #3
Det ser ud til at have hjulpet med 'x' efterfulgt af værdien.

Så mange, mange tak.

Og smid et svar hvis du vil have points...
Avatar billede erikjacobsen Ekspert
18. december 2008 - 16:46 #4
Jeg kan for interesserede tilføje at
  echo array_search('1',$letters,true).'<br>';
vil give et "sjovt" resultat.

Jeg samler slet ikke på point, tak. Svar selv, accepter dit eget svar.
Avatar billede kjeldsted Novice
18. december 2008 - 16:58 #5
Nå, ja. Det er der noget om. Men så snupper jeg dem selv.

Og endnu engang, tak :D
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