pragmaMx Support Forum

pragmaMx => Coder und Bastlerecke => Thema gestartet von: pyr0 am 17 Mai 2014, 11:21:00

Titel: Probleme mit array im Script
Beitrag von: pyr0 am 17 Mai 2014, 11:21:00
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
Titel: Re:Probleme mit array im Script
Beitrag von: pyr0 am 17 Mai 2014, 12:29:42
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
Titel: Re:Probleme mit array im Script
Beitrag von: Webfan am 17 Mai 2014, 16:21:16
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
Titel: Re:Probleme mit array im Script
Beitrag von: pyr0 am 20 Mai 2014, 06:55:19
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:

Titel: Re:Probleme mit array im Script
Beitrag von: Webfan am 20 Mai 2014, 10:02:13
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
Titel: Re:Probleme mit array im Script
Beitrag von: pyr0 am 24 Mai 2014, 10:42:32
MOin Moin

okay werd das mal am WE ausprobieren und ja klingt einleuchten lieber eine neue Tabelle zunehmen  :red:
Titel: Re:Probleme mit array im Script
Beitrag von: pyr0 am 02 Juni 2014, 20:45:09
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