Avatar billede Mik2000 Professor
23. juni 2008 - 23:19 Der er 15 kommentarer og
2 løsninger

Sammenlign 2 arrays/variabler

Hej

Jeg har 2 variabler som følger:
$variabel1 = "1-3-7-12-14";
$variabel2 = "2-3-9-11-14-17";

Jeg vil gerne have dem sammenlignet og have en ny variabel med de et af hver af de tal der findes i begge variabler. Dvs.:
$variabel3 = "1-2-3-7-9-11-12-14-17";

Jeg har pt ændret dem til et array med explode funktionen fordi jeg tænkte det måske var nemmere med det, men er gået i stå.

Håber I kan hjælpe med hvordan det kan gøres?
Avatar billede mantichora Nybegynder
23. juni 2008 - 23:38 #1
hvad med

$output = array_merge($ar1, $ar2);
$output = array_unique($output);
sort($output);

.. hvor $ar1 og 2 er de to arrays med talværdierne.
Det er ikke testet, men burde give resultatet du leder efter.
Avatar billede Mik2000 Professor
24. juni 2008 - 01:00 #2
Det ser ud til at virke.

Jeg har et mere som du måske også kan og vil hjælpe med (eller en anden):

Jeg har 2 variabler som følger:
$variabel1 = "1-3-7-12-14";
$variabel2 = "3-7-14";

Jeg vil gerne have dem sammenlignet og have en ny variabel med de numre fra variabel som ikke er i variabel2:
$variabel3 = "1-12"; //Fjerner 3-7-14 fra variabel1 fordi de står i vriabel 2

De er igen lavet om til arrays
Avatar billede jakobdo Ekspert
24. juni 2008 - 07:04 #3
$diff = array_diff($variabel1,$variabel2);
Avatar billede coderdk Praktikant
24. juni 2008 - 15:21 #4
du skal måske lige køre explode("-",$variabel) før du arbejder med array_* funktionerne :)
Avatar billede jakobdo Ekspert
24. juni 2008 - 15:58 #5
Mindre detalje! :o)
Avatar billede Mik2000 Professor
24. juni 2008 - 22:18 #6
Hej

De er lavet om :)

Men har et andet problem, for på det sted det skal installeres er der ikke PHP 5, så hvordan kan jeg så løse det?

Håber nogle kan det?
Avatar billede coderdk Praktikant
24. juni 2008 - 22:38 #7
Erh, hverken array_merge, array_unique, array_diff, sort eller explode kræver PHP5, så det burde ikke være noget problem.
Avatar billede jakobdo Ekspert
24. juni 2008 - 23:21 #8
Så længe serveren understøtter PHP, så burde disse løsninger virke. :o)
Avatar billede Mik2000 Professor
25. juni 2008 - 02:12 #9
Okay prøver lige. Så bare på http://dk.php.net/manual/en/function.array-udiff.php at array_dif krævede php 5.
Det andet virker :)
Avatar billede jakobdo Ekspert
25. juni 2008 - 08:08 #10
array_udiff og array_diff
Der er altså et U til forskel. :o)
Avatar billede Mik2000 Professor
25. juni 2008 - 12:43 #11
LOL det er fordi den finder den når man bare søger op array_dif på php.net hehe

SORRY :)
Avatar billede Mik2000 Professor
25. juni 2008 - 13:38 #12
Tak for hjælpen allesammen :)

Læg et svar for pont - det må være mantichora og jakobdo som deler - er det ikke fair?
Men tak til alle :)
Avatar billede jakobdo Ekspert
25. juni 2008 - 14:01 #13
Svar!
Avatar billede mantichora Nybegynder
25. juni 2008 - 21:08 #14
og herfra :)
Avatar billede Mik2000 Professor
27. juni 2008 - 21:29 #15
Tak for hjælpen :)
Avatar billede jakobdo Ekspert
28. juni 2008 - 17:56 #16
Takke for point.
Avatar billede Mik2000 Professor
29. juni 2008 - 00:30 #17
Hvis I har lyst så er der 100 point mere at hente her: http://www.eksperten.dk/spm/836519
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