16. april 2008 - 12:40
Der er
12 kommentarer og 1 løsning
Fjerne duplicates fra array.
Jeg har et array. På pladsen $row['event'] er der samme værdi flere gange... Den samme værdi må kun komme en gang, resten skal bare slettes! Hvordan gøres det? Har prøvet med $row['event']= array_flip($row['event']); men det virker ikke! Hele koden det skal køre på: $objImages = new images; $imagedata = $objImages->getData($where); //$imagedata[0] = array_unique($imagedata[0]); foreach ($imagedata as $row) { foreach ($row as $field => $value) { switch($field) { case "imageID": $tmpImageID = $value; break; case "userID": $tmpUserID = $value; break; case "title": $tmpTitle = $value; break; case "path": $tmpPath = $value; break; case "event": $tmpEvent = $value; echo "value = ".$value."<br />"; // if (!isset($_GET['event']))echo '<div class="picture_thumb"><a href="index.php?type=content&id=15&menu=8&event='.$value.'"><img src="modules/images/'.$tmpPath.'" width="120" height="100" alt="'.$value.'"/></a></div>'; break; case "filetype": $tmpFiletype = $value; break; default: $publish = true; break; }//end switch }//end foreach
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
16. april 2008 - 13:20
#1
16. april 2008 - 13:23
#2
Jeg har også prøvet at rode med den, men jeg kan ikke få den til at virker ordentligt.
16. april 2008 - 13:25
#3
Jeg prøvede den sådan her: $objImages = new images; $imagedata = $objImages->getData($where); //$nr = 0; foreach ($imagedata as $row) { $row = array_unique($row); foreach ($row as $field => $value) { { switch($field) { case "imageID": $tmpImageID = $value; break; case "userID": $tmpUserID = $value; break; case "title": $tmpTitle = $value; break; case "path": $tmpPath = $value; break; case "event": $tmpEvent = $value; if (!isset($_GET['event']))echo '<div class="picture_thumb"><a href="index.php?type=content&id=15&menu=8&event='.$value.'"><img src="modules/images/'.$tmpPath.'" width="120" height="100" alt="'.$value.'"/></a></div>'; break; case "filetype": $tmpFiletype = $value; break; default: break; }//end switch } }//end foreach Men jeg får stadig de samme værdier under "event" flere gange.
16. april 2008 - 13:34
#4
Prøv inden du kalder: foreach ($imagedata as $row) { at lav: echo '<pre>'; print_r($imagedata); echo '</pre>'; Og smid indholdet herind. Ellers forstår jeg dig ikke helt.
16. april 2008 - 13:36
#5
Array ( [0] => Array ( [imageID] => 29 [imagename] => 1208014118 [title] => Mee [userID] => 1 [filetype] => jpg [path] => upload/1208014118.jpg [event] => Simpsons [createtimestamp] => 2008-04-12 17:28:38 [changetimestamp] => 2008-04-15 08:21:50 ) [1] => Array ( [imageID] => 30 [imagename] => 1208014154 [title] => Efter [userID] => 1 [filetype] => jpg [path] => upload/1208014154.jpg [event] => Simpsons [createtimestamp] => 2008-04-12 17:29:14 [changetimestamp] => ) [2] => Array ( [imageID] => 31 [imagename] => 1208014449 [title] => Camera [userID] => 1 [filetype] => jpg [path] => upload/1208014449.jpg [event] => Diverse [createtimestamp] => 2008-04-12 17:34:09 [changetimestamp] => ) [3] => Array ( [imageID] => 32 [imagename] => 1208014467 [title] => Psy [userID] => 1 [filetype] => gif [path] => upload/1208014467.gif [event] => Diverse [createtimestamp] => 2008-04-12 17:34:27 [changetimestamp] => ) [4] => Array ( [imageID] => 33 [imagename] => 1208014493 [title] => Spm [userID] => 1 [filetype] => jpg [path] => upload/1208014493.jpg [event] => Diverse [createtimestamp] => 2008-04-12 17:34:53 [changetimestamp] => ) [5] => Array ( [imageID] => 38 [imagename] => 1208338978 [title] => Hayabusa [userID] => 1 [filetype] => jpg [path] => upload/1208338978.jpg [event] => Bikes [createtimestamp] => 2008-04-16 11:42:58 [changetimestamp] => ) )
16. april 2008 - 13:50
#6
Tænkte at jeg måske skulle prøve med $row['event'] = array_unique($row['event']); men det duer heller ikke.
16. april 2008 - 13:57
#7
Trækker du data ud af en SQL inden du smider det i dit array ?
16. april 2008 - 13:59
#8
Man kunne jo evt. løbe array'et igennem manuelt og så smide de events ud, som allerede findes i et midlertidigt oprettet array. $events = array(); foreach ($imagedata as $id => $row) { if(in_array($row['event'],$events)){ unset($imagedata[$id]); } $events[] = $row[event]; } Og så arbejder du med $imagedata som tidligere. Det er dog utestet.
16. april 2008 - 14:03
#9
Prøver lige...
16. april 2008 - 14:16
#10
Super! Det virker! :D Hvad er det lige unset den gør? Det er nok bedst hvis jeg lige forstår koden 100% ;)
16. april 2008 - 14:28
#11
unset() fjerner/nedlægger et element.
Se mere her:
http://dk.php.net/unset Og du får et svar.
16. april 2008 - 15:06
#12
Takker for point.
16. april 2008 - 16:06
#13
- Og jeg takker for hjælpen!
Vi tilbyder markedets bedste kurser inden for webudvikling