14. november 2007 - 16:04
Der er
5 kommentarer og
1 løsning
trække en kommasepareret liste fra en anden
Hej
Hvordan gør jeg det her i php?
// variabler
$liste1="1,3,5,7,9,11,13,15";
$liste2="4,5,6,7,8,9";
// output
print $liste1-$liste2; // skulle gerne være "1,3,11,13,15"
hilsen Anders
14. november 2007 - 17:00
#2
De værdier du viser der, er dem som er i liste1 og ikke i liste2.
Det bør du kunne lave sådan her:
$liste1 = "1,3,5,7,9,11,13,15";
$liste2 = "4,5,6,7,8,9";
array_diff(explode(',',$liste1),explode(',',$liste2));
14. november 2007 - 17:51
#3
Husk at det vil retunere et array, så hvis du vil have det tilbage til en streng, skal du sige:
$my_string = implode(",",array_diff(explode(',',$liste1),explode(',',$liste2)));
Det burde virke.
//mcardle
15. november 2007 - 10:30
#4
Det er jo intet mere end fantastisk :-)
W13 - mit forsøg på at trække to lister fra hinanden, var bare pseudokode. Hvis du kigger i svarene fra Jakobdo og Mcardle, så tror jeg, at mit spørgmsål vil give mening, for deres svar rammer 100% hvad jeg søger.
og det bringer mig til Jakobdo og Mcardle. I leverer en komplet løsning, så er I ikke venlige, at smide et svar, så I kan få jeres point.
Hilsen Anders
(løsning, splittet op i små trin)
// startvariabler
$liste1 = "1,3,5,7,9,11,13,15";
$liste2 = "4,5,6,7,8,9";
// do the math
$array_tal_kun_i_liste1 = array_diff(explode(',',$liste1),explode(',',$liste2));
$liste_tal_kun_i_liste1 = implode(",",$array_tal_kun_i_liste1);
// output
print $liste1."<br>"; // 1,3,5,7,9,11,13,15
print $liste2."<br>"; // 4,5,6,7,8,9
print $liste_tal_kun_i_liste1; // 1,3,11,13,15