Gleiche Daten im Array zusammen fügen!?

warli

Grünschnabel
Hi Folks,

wie kann ich in einem Array gleiche Daten zusammenfügen!?

Beispiel:
Code:
<?php
$array = array("PHP",1,"Manual",1,"ist",1,"cool");
foreach($array as $test){
echo $test;
}
?>

Die Ausgabe ist klar: PHP1Manual1ist1cool

Nun möchte ich aber das er die doppelten Daten erkennt und zusammen fast.
Das heisst das er die "1" nur einmal ausgibt egal wo sie im Array steht.

Beispielausgabe: PHP1Manualistcool

Hoffe was ich möchte ist verständlich :rolleyes:

Danke euch
gruss
 
Mit ein paar If Abfragen solltest du es schon selbst hinbekommen.
Ich empfehle dir eine Funktion zu bauen ,in der du das Array eingibst.
Diese Funktion zaehlt die Eintraege im Array und setzt die Doppelten = "" oder 'loescht' aus dem Array ,die doppelt sind.
Dafuer musst du jedes Array Element mit jedem anderen Vergleichen und danach aussortieren lassen.
Kannst natuerlich auch machen ,dass alle Eintraege die vorkommen in ein weiteres ARray zu speichen und dann mit if(in_array) abzufragen.

Srry wenn es e formuliert ist aber das Wetter macht mich malle.
 
Danke leute.

Sei nicht sauer KristophS aber deine Lösung ist doch etwas zu viel Code :-)
Danke dir trotzdem.

Das mit
Code:
$array = array_unique($array);

klappt echt gut, ausser das die Daten ihren ArrayIndex beibehalten. Musste da dann doch noch etwas tricksen.

Also falls jemand den oben genannten Code verwendet, denkt dran:
Array Index bleibt wie er vor der unique war.

Danke an euch
gruss aus dem heissen Niedersachsen *Fg*
 
Genau. Und sonst machst du vor der foreach-Schleife noch eine foreach-Schleife, in der du jedes Element in einem neuen Array speicherst - dann stimmen die Indizes wieder.
 
*Idee*
PHP:
$array = array("PHP",1,"Manual",1,"ist",1,"cool");
$new_array = Array();
while (list ($key, $val) = each($array)) if (!in_array($val, $new_array)) $new_array[$key] = $val;
 
Kommt halt nur drauf an, ob's schnell sein muss, und das dürfte es ja nicht unbedingt sein, oder? :/

Also lieber überprüfen, ob der foreach-value nen leerer ist und dann mit continue weiter, würde ich mal sagen. :rolleyes:
 
Das mit der foreach Schleife geht ja nur wenn ich aus einer anderen Schleife das array angesprochen habe... ging das durch die Indexwerte nicht immer reibungslos.

Ich habe es zum Schluss dann doch so gemacht wie Silent Warrior (2 Schleifen)
und es klappt bestens.
Danke nochmal für eure vielen Ideen.

greetz
warli
 
Zurück