2016-06-29 16 views
0

Ich bin auf der Suche nach der effizientesten und saubersten Möglichkeit, Daten aus einer Zeichenfolge zu extrahieren und in ein Array von Informationen zu organisieren. Ich baue ein Tool, das eingefügte Memo-Informationen in ein besser lesbares Format umwandelt.Die beste Methode zum Extrahieren von Daten aus einer Zeichenfolge

Im Moment haben wir Memos für neue Mitarbeiter wie folgt erhalten:

Name: JOHN SMITH

SERVICE: ICT

MANAGER: JOHN TURNER

POST TITEL: IT Support Offizier

Ich möchte in der Lage, alle diese Informationen in ein Array aus einem Textfeld POST geholt zu setzen und es dann wie unten in ein schöneres Format auf der Seite angezeigt werden:

Vollständiger Name: John Smith

Service-Bereich : ICT

Line Manager: John Turner

Berufsbezeichnung: IT-Offizier Unterstützung

ich bin mir bewusst, tha t Ich könnte Funktionen wie explode() verwenden, aber ich wollte nur sehen, ob es bessere Möglichkeiten gibt, dies zu tun?

Ich möchte alle Informationen in einem Array speichern, so dass es leicht zu ECHO auf meiner Webseite ist, sobald es auf dem Server veröffentlicht wurde.

$Newemployee['Name'] = "John Smith"; 
$Newemployee['Service'] = "ICT"; 
$Newemployee['Manager'] = "John Turner"; 
$Newemployee['Post_title'] = "IT Support Officer"; 

Wenn jemand Vorschläge hat, wäre das toll.

+0

Nein, es gibt keinen besseren Weg. Teilen Sie uns mit, was Sie tun, und wir können Ihnen vielleicht mit einigen Verbesserungen helfen. –

+0

wäre es besser, diese Daten in Textfeldern einzugeben, anstatt alle Informationen in einem Textbereich von Anfang an für eine spätere leichtere Handhabung. – Matt

+0

Da Sie wissen, dass Sie 'explode()' dafür verwenden können, können Sie uns zeigen, was Sie bisher versucht haben? –

Antwort

0

Angenommen, Sie keine Kontrolle über das Format des Eingangs haben, und ohne die Eingabe in irgendeiner Weise Hygienisierung, glaube ich, die am besten geeignete Weg, um dies zu erreichen, die Funktionen wie wird mit explode() wie Sie beschrieben haben:

$newuser = []; 

$input = "NAME: JOHN SMITH 

SERVICE: ICT 

MANAGER: JOHN TURNER 

POST TITLE: IT Support Officer"; 

$lines = array_filter(explode("\n", $input)); 

foreach ($lines as $line) { 

    $parts = explode(": ", $line); 
    $newuser[ucfirst(strtolower(str_replace(" ", "_", $parts[0])))] = $parts[1]; 

} 

EDIT

haben die Array-Indizes verändert die Formatierung, die Sie beschrieben haben, zu reflektieren.

Wie bei den tatsächlichen Werten ist es normalerweise besser, alle Werte in derselben Form (d. H. In Kleinbuchstaben) zu speichern und sie beim Drucken auf dem Bildschirm entsprechend zu formatieren. Auf diese Weise können Sie die Werte einfach vergleichen, ohne das Format jeder Zeichenfolge kennen zu müssen. Das bedeutet, dass Sie Dinge wie das Akronym "ICT" erkennen können und dass es sich dabei um Großbuchstaben handelt, während ein anderer "Service" kein Akronym ist bevorzuge es, nur groß geschrieben zu werden.

+0

Sind Sie sicher? Ich habe eine PHPFiddle mit der Ausgabe: 'Array ([NAME] => JOHN SMITH [SERVICE] => ICT [MANAGER] => JOHN TURNER [POST TITEL] => IT Support Officer)' –

+0

Die Frage fragt nach dem 'besten Möglichkeit, Daten aus einem String zu extrahieren '- Ich habe das mit einer geeigneten Lösung beantwortet. Wie Sie dann die Daten manipulieren (zum Beispiel Großschreibung) ist eine andere Frage –

Verwandte Themen