[php] arrays vergelijken ik kom er niet meer uit

Pagina: 1
Acties:

Onderwerpen


Verwijderd

Topicstarter
ik ben geen totale noob met php maar zeker geen expert.

ik maak een script die alle mappen van een dir in een array zet.. daarna leest dat script een ander text file in waar de bestaande mappen al in staan. nu wil ik dat hij de nieuwe mappen (die dus niet in de textfile staan ) print

in de txt file staan byv 4 mappen die al bestaan. als hij gaat vergelijken dan vindt hij altijd de laatste record van dat txt bestand. ik snap er niks van en heb me rot gezogt op php.net en in de search functie
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$allemaal=0;
while ($allemaal < $lijnen_allemaal_t-1)  // while allemaal

{
$allemaal=$allemaal+1;

$normaal=0;
while ($normaal < $lijnen_allemaal_t-1) // while normaal

{
$normaal=$normaal+1; // vergelijk

if ($lijnen_normaal[$normaal] == $lijnen_allemaal[$allemaal]) { print("dubbele!!!"); }  

}

}


$allemaal is de array waar de gescande dirs in zitten
$normaal is de array waar de bestaande mappen in zitten die hij uit een txt heeft gepeuzeld

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

Dat is wel erg basic

in pseudo-code:
code:
1
2
3
4
5
voor elke map
{
    if (map niet in de array met al bestaande mappen)
        print map
}


en om te testen of iets in een array voorkomt is gewoon een functie, zoek maar in de documentatie

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Terranca
  • Registratie: April 2000
  • Laatst online: 16-09 21:57
PHP heeft een aantal functies die goed kunnen dienen voor hetgene wat jij probeert te bereiken.

Om te beginnen met de array_intersect(). Vergelijkt 2 array's en returnt een array met alleen de 'dubbelen' van die array.
Wil je ook nog een index check (dus dat een element alleen in de array moet komen als hij array1[2] == array2[2]), dan kan je gebruik maken van array_intersect_assoc()

Met een beetje zoekwerk op PHP.net zou je er wel uit moeten komen dus :)

Verwijderd

Topicstarter
het is ff snel een code om te kijken of het werkt , had het eerst helemaal gemaakt maar toen heb ik het weggehaald om overnieuw te beginnen want het werkte niet goed.

ik snap niet dat hij alleen de laatste vergelijking goed vindt

maar ik ga php.net wel weer platzoeken

edit:bedankt , met dat opzetje moet ik het wel redden.

[ Voor 10% gewijzigd door Verwijderd op 18-12-2003 16:34 . Reden: bedankje ]


Verwijderd

Topicstarter
ik heb gevonden waarom de functie niet werkte, in de txt file heeft alleen het laatste record geen spatie erachter.

hij vergelijkt dus de array1[x] met de array2[x] maar ze zijn nooit gelijk omdat de 1 een spatie erachter heeft.

ik ga nu uitvogelen hoe ik van elke array waarde een spatie eraf kan toveren.