Hoi an alle,
bin mal wieder am tüfteln, aber im Moment hänge ich fest. Also folgendes:
Ich lese die DB mit einer while Schleife aus und bekomme folgendes Array
Array
(
[0] => Blog, Module
[1] => Start, Internetseite, Server
[2] => mxBlog Entwicklung, Blog, Module
[3] => mxBlog Entwicklung, Blog, Module
[4] => mxBlog Entwicklung, Blog, Module, Modul
[5] => mxBlog Entwicklung, Blog, Module, Modul, auto
)
Wie bekomme ich das alles in so ein Array
Array
(
[0] => Blog, Module,Start, Internetseite, Server,mxBlog Entwicklung, Blog, Module ...... usw
)
Sinn des ganzen: ich möchte gerne alle doppelten Einträge mit $bs = array_unique ( $var );
entfernen. Mir fehlt gerade total der Ansatz.
Danke für Eure Hilfe :morning:
Gruss pyr0
So hab ne Lösung gefunden, sieht bestimmt nicht schön aus, aber es geht:
$now = array();
foreach($tag as $ida => $inhalt){
$tags = explode(",",$tag[$ida]);
foreach($tags as $idb => $inhalt_a){
$inhalt_c = trim($tags[$idb]);
$now[] = $inhalt_c;
}
}
$is_tag = array_unique ($now);
/* testausgabe */
print_r ( $is_tag );
In diesem Beispiel hab ich dann auch noch alle Kommas und Leerzeichen entfernt, so dass ich die einzellnen Tags weiter benutzen kann für eine erneute DB Abfrage auf diesen Tag
Gruss pyr0
Hallo,
ZitatWie bekomme ich das alles in so ein Array
funktioniert auch (ungetestet?):
$resultArr = explode(',', implode(',', $arrayInput));
array_walk($resultArr, 'trim');
$resultArr = array_unique ( $resultArr );
Eine andere Möglichkeit, wäre ein assoziatives Array zu erstellen und den Wert als Schlüssel zuzuweisen (welcher im Array unique ist) (Wie in der froeach Schleife angedeutet $now[] statt $now[$inhalt_a]).
mfg
Moin Moin
@webfan: hab noch keine Zeit gehabt zum testen, aber trotzdem ersteinmal danke
es hilft nur nicht weiter glaube ich, denn ich habe ja bereits einen array wie angegebenArray
(
[0] => Blog, Module
[1] => Start, Internetseite, Server
[2] => mxBlog Entwicklung, Blog, Module
[3] => mxBlog Entwicklung, Blog, Module
[4] => mxBlog Entwicklung, Blog, Module, Modul
[5] => mxBlog Entwicklung, Blog, Module, Modul, auto
)
und die einzellnen Inhalte kommen aus der DB durch die while Schleife, die Einträge sind wahrscheinlich schlecht gewählt :red:
Hallo pyro,
Zitates hilft nur nicht weiter glaube ich
Glauben, glauben, Fahrradschrauben... ? Schon getestet?
Zitatund die einzellnen Inhalte kommen aus der DB durch die while Schleife
Deine Tabellenstruktur ist nicht normalisiert.
Statt einer Spalte "tags", verwende lieber eine Tabelle "tags" mit den einzelnen Tags als Einträgen.
Mit explode/impdote kannst Du strings zu arrays konvertieren bzw. umgekehrt, also auch die einzelnen Einträge Deines Arrays.
Um die Einträge unique zu machen kannst Du dann array unique verwenden, ich denke aber das mein Vorschlag mit dem assoziativen array schneller ist.
Viele Grüße
Till
MOin Moin
okay werd das mal am WE ausprobieren und ja klingt einleuchten lieber eine neue Tabelle zunehmen :red:
Hoi Webfan
hab es jetzt mal umgestellt und siehe da es ist besser so
Danke für den Tip
Ist es immer ratsam getrennte Tabellen zunehmen oder ist das von Fall zu Fall zuentscheiden?
Gruss pyr0