Probleme mit array im Script

Begonnen von pyr0, 17 Mai 2014, 11:21:00

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

pyr0

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
Kein Support über PN, Mail !
Bitte die Fragen im Forum stellen, nur so helfen die Antworten auch den anderen Usern.
Bitte auch die Boardsuche nicht vergessen, oft ist genau dein Problem schon an anderer Stelle gelöst worden!

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
Kein Support über PN, Mail !
Bitte die Fragen im Forum stellen, nur so helfen die Antworten auch den anderen Usern.
Bitte auch die Boardsuche nicht vergessen, oft ist genau dein Problem schon an anderer Stelle gelöst worden!

Webfan

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

pyr0

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:

Kein Support über PN, Mail !
Bitte die Fragen im Forum stellen, nur so helfen die Antworten auch den anderen Usern.
Bitte auch die Boardsuche nicht vergessen, oft ist genau dein Problem schon an anderer Stelle gelöst worden!

Webfan

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

pyr0

MOin Moin

okay werd das mal am WE ausprobieren und ja klingt einleuchten lieber eine neue Tabelle zunehmen  :red:
Kein Support über PN, Mail !
Bitte die Fragen im Forum stellen, nur so helfen die Antworten auch den anderen Usern.
Bitte auch die Boardsuche nicht vergessen, oft ist genau dein Problem schon an anderer Stelle gelöst worden!

pyr0

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
Kein Support über PN, Mail !
Bitte die Fragen im Forum stellen, nur so helfen die Antworten auch den anderen Usern.
Bitte auch die Boardsuche nicht vergessen, oft ist genau dein Problem schon an anderer Stelle gelöst worden!