0lav Skrevet 15. april 2007 Del Skrevet 15. april 2007 (endret) Hei! Ble kansje litt dårlig tittel, men hvertfall; Hvis jeg f.eks har disse to arrayene: $fu=array("asd", "asd2", "asd3"); $bar=array("asd", "asd3"); Hvordan kan jeg da sjekke om $fu inneholder alt som er i $bar selv om tingene ikke er i samme rekkefølge? Hadde også vært greit hvis det var en måte for å finne ut hva som manglet.. Har ikke funnet noen funksjon for dette enda, så den eneste måten jeg har kommet på er å kjøre en for løkke på det ene arrayet også sjekke det opp mot det andre med in_array().. Endret 15. april 2007 av 0lav Lenke til kommentar
grimjoey Skrevet 15. april 2007 Del Skrevet 15. april 2007 (endret) prøv if($array1 === $array2) blablabla; det funker med == og ===... <?php $array1 = array('test', 'test2', 'test3'); $array2 = array('test', 'test2', 'test3'); $array3 = array('test1', 'test2', 'test3'); if($array1 == $array2) echo("ok1"); if($array1 == $array3) echo("ok2"); if($array1 === $array2) echo("ok3"); if($array1 === $array3) echo("ok4"); ?> returnerer: ok1 ok3 edit: sorry. leste liitt fort dette ble feil... prøv det samme men bruk asort() rundt array variabelene. det sorterer verdiene alfanumerisk. if (asort($array1) == asort($array2)) blabla; /edit Endret 15. april 2007 av grimjoey Lenke til kommentar
mske Skrevet 15. april 2007 Del Skrevet 15. april 2007 (endret) grimjoey, det der blir helt feil. Ihvertfall i forhold til hvordan trådstarter ønsket det EDIT: Tror kanskje noe slikt burde fungere, men har ikke testet ordentlig så kan hende det er feil. <?php $array = array("asd", "asd2", "asd3"); $array2 = array("asd", "asd2", "asd3"); foreach($array as $key) { echo $key; echo "<br/>"; } echo "<br/>"; if(in_array($key, $array2)) { echo "Array no. 1 contains something inside array no. 2"; } else { echo "Nope, array no. 1 does not contain anything from array no. 2"; } ?> Endret 15. april 2007 av -Magne- Lenke til kommentar
grimjoey Skrevet 15. april 2007 Del Skrevet 15. april 2007 (endret) foreach(asort($array1) as $key => $value) { if($value != asort($array2)[$key]) echo($value.' mangler!'); } ellernoe edit:typo Endret 15. april 2007 av grimjoey Lenke til kommentar
Runar0 Skrevet 15. april 2007 Del Skrevet 15. april 2007 (endret) Klikk for å se/fjerne innholdet nedenfor PHP <?php $fu = array("asd", "asd2", "asd3"); $bar = array("asd", "asd3"); $text = array("asd", "asd2", "asd3"); $test = array("asd", "asd", "asd3"); if(array_same($fu, $bar)) echo "Samme innhold"; else echo "Ikkje samme innhold"; echo "<br />"; if(array_same($fu, $text)) echo "Samme innhold"; else echo "Ikkje samme innhold"; echo "<br />"; if(array_same($test, $fu)) echo "Samme innhold"; else echo "Ikkje samme innhold"; function array_same($fu, $bar) { $i = 0; if(count($fu) != count($bar)) return false; $count = count($fu); foreach($fu as $value) { if(in_array($value, $bar)) { $i++; unset($bar[array_search($value, $bar)]); } }if($i == $count) { return true; } else { return false; } } ?> Det er godt mulig det finst ein innebygd funksjon for dette, men koden over fungerte for meg. Det den gjør er at den looper $fu og skjekker om $bar har den variabelen. Og vist den gjør det auker den $i med ein og fjerner treffet frå $bar. Vist $i er like stor som begge arrayene på slutten må alle ha matcha. Edit: Litt for sein der :/ Endret 15. april 2007 av Shadows0 Lenke til kommentar
gxi Skrevet 15. april 2007 Del Skrevet 15. april 2007 Enkelt og greit.. if (!array_diff($array1, $array2) && !array_diff($array1, $array2)) { // Arrayene inneholder samme data } Den utfører en toveissjekk mot arrayene. Dersom en av dem inneholder noe den andre ikke inneholder vil en av array_diff-ene returnere ett eller flere elementer i en array. Merk invertering av funksjonene. Lenke til kommentar
0lav Skrevet 15. april 2007 Forfatter Del Skrevet 15. april 2007 Hey! Tusen takk for svar! Ser ut som om array_diff() er det jeg lette etter... Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå