Avatar billede avminarm Juniormester
15. maj 2003 - 14:17 Der er 12 kommentarer og
1 løsning

tjekke om 2 arrays "passer" sammen

Hejsa

hvis man nu har 2 arrays

$a1=("a","b","c")
$a2=("xx","zz","yy")

Kan man på nogen måde "loope" sig igennem om arrayet passe sammen i par? - altså a=xx og b=zz og c=yy

Hvis man har et brugerinput fra 2 textfelter f.eks et brugernavn og et password.

Hvis så brugernavnet siges at være i $a1 og password er i $a2 så skal de passe sammen parvis dvs $a1[0] skal være lig med $a2[0] - jeg ville gerne tjekke dette gennem et slags loop, men hvordan?
Avatar billede Slettet bruger
15. maj 2003 - 14:23 #1
Du kan eventuelt tjekk om array_diff() og array_diff_assoc() er noget du kan bruge.
http://www.php.net/manual/en/function.array-diff-assoc.php
f.eks.
$difference = array_diff_assoc();
if(count($difference)>0)
{
    echo "De to array's er ikke identiske...";
}
Avatar billede sthen Nybegynder
15. maj 2003 - 14:23 #2
med eller uden MySql
Avatar billede tipsen Nybegynder
15. maj 2003 - 14:26 #3
//dit associative array med usernames og tilhørende passwords
$userpass = array('user1' => 'pass1', 'user2' => 'pass2', 'user3' => 'pass3', 'user4' => 'pass4', 'user5' => 'pass5');
//username og password fra formular
$user = $_POST['username'];
$pass = $_POST['password'];
//findes username i array og er password rigtigt?
if(array_key_exists($user, $userpass) && $userpass[$user] == $pass) {
  echo "Username og password er korrekt!";
} else {
  echo "Username eller password er forkert!";
}
Avatar billede tipsen Nybegynder
15. maj 2003 - 14:31 #4
NB: Det er en sammenkobling af dine oprindelige 2 arrays, som gør livet lidt nemmere!
Avatar billede avminarm Juniormester
15. maj 2003 - 14:35 #5
sthen>> uden MySQL

regin>> det er nok min formulering, men det er ikke arraysne jeg skal tjekkeom de er ens , men derimod om brugerinputsne passe sammen i par dvs hvis bruger har tastet et brugernanv og et pass og der er det andet "par" i de to arrays, jeg brude måske have kalde $a1 for brugernavn og $a2 for password
Avatar billede avminarm Juniormester
15. maj 2003 - 14:37 #6
tipsen>> - jeg kan godt se det er nemmere, men kan man gøre det med to arrays?
Avatar billede tipsen Nybegynder
15. maj 2003 - 14:47 #7
Kan man sagtens, men jeg gad ikke kode det, da det bliver unødvendigt kompliceret og langsommeligt...
Avatar billede avminarm Juniormester
15. maj 2003 - 14:51 #8
ok - men kan du forklare principperne?
Avatar billede tipsen Nybegynder
15. maj 2003 - 15:01 #9
lav en for-løkke, som løber alle elementerne igennem og prøver at finde username - hvis du finder det, kan du undersøge om password matcher på den tilsvarende plads i det andet array.
Avatar billede mart1n Nybegynder
15. maj 2003 - 17:46 #10
Noget i den her stil:

$username = $_POST['username'];
$password = $_POST['password'];

$usernames = array("a","b","c");
$passwords = array("xx","zz","yy");

for($i = 0; $i < sizeof($usernames); $i++) {
    if($usernames[$i] == $username && $passwords[$i] == $password) {
        echo "bingo";
    }
}
Avatar billede avminarm Juniormester
17. maj 2003 - 23:06 #11
tipsen>> takker
mart1n>> læg svar for points
Avatar billede tipsen Nybegynder
19. maj 2003 - 14:33 #12
Og så er der jo ikke grund til at løbe hele arraet igennem når man først har fundet et match:

for($i = 0; $i < sizeof($usernames); $i++) {
    if($usernames[$i] == $username && $passwords[$i] == $password) {
        echo "bingo";
        break;
    }
}
Avatar billede avminarm Juniormester
21. maj 2003 - 11:32 #13
ok så får tipsen points ;o)
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