Text mit php zusammenfassen

jerry0110

Erfahrenes Mitglied
Hallo,

ich habe eine frage. Ich würde gerne einen Text den ich in ein Textfeld schreibe zusammenfassen lassen von php.

es sind daten die sich wiederholen bzw. wo nur ein wert anders ist der aber dann zusammengerechnet werden soll.

wie als ob man in einem shop 5 mal das gleiche bestellt aber einzeln und das php dann dann die gleichen artikel zusammen fügt als ein artikel aber ann mit der gesamten stückzahl.

mit welchem befehl geht das?

oder wie mach ich das?
 
schlendrian [CH] / 258558 - Chicago_1_[CH] Ocean`s Eleven 75000 02:49:51
schlendrian [CH] / 258558 - Chicago_1_[CH] Ocean`s Eleven 75000 02:49:36
Dragon [CH] / 263338 - JV-1 [CH] Ocean`s Eleven 112500 02:31:35
Dragon [CH] / 263338 - JV-1 [CH] Ocean`s Eleven 112500 02:31:30
Dragon [CH] / 263338 - JV-1 [CH] Ocean`s Eleven 112500 02:31:21
Dragon [CH] / 263338 - JV-1 [CH] Ocean`s Eleven 112500 02:31:14

jetzt soll php alles zusammenrechnen. also nicht die zeit weil das die dauer ist. aber die stärke nach "Ocean`s Eleven". das die zusammengerechnet wir und das dann am ende das steht:

Dragon [CH] / 263338 - JV-1 [CH] Ocean`s Eleven 450000
schlendrian [CH] / 258558 - Chicago_1_[CH] Ocean`s Eleven 150000
 
Ich wuerden den Inhalt der Textarea zunaechst mal mit explode() zu einem Array umwandeln. Jede Zeile ist ein neues Element.
Anschliessend muss dann dieses Array durchgearbeitet werden und die Erkenntnisse (welche Elemente sind vorhanden und wie oft) in ein mehrdimensionales Array geschrieben werden.
Falls ein Element noch nicht im Array zu finden ist wird es in das Array uebertragen und der Zaehler auf 1 gesetzt. Falls es bereits existiert wird dort der Zaehler um 1 erhoeht.
 
Folgendes wäre möglich:
PHP:
<?php

	…

	$data = array();
	$items = preg_split('/(?:\x0A|\x0D\x0A|\x0D|\x0C)/s', $string);
	foreach( $items as $item ) {
		preg_match('/(.+?)([1-9][0-9]*) (?=[0-9]{2}:[0-9]{2}:[0-9]{2})/', $item, $matches);
		$matches[1] = trim($matches[1]);
		if( !isset($data[$matches[1]]) ) {
			$data[$matches[1]] = 0;
		}
		$data[$matches[1]] += $matches[2];
	}

?>
 
Sorry doch noch nicht close :P


Habe es jetzt so angefange!! das versteh ich wenigsten :P

<?php
$textarea = $_POST['textarea'];
$teile = explode(";", $textarea);
$anzahl = count($teile);
for($i = 0; $i <= $anzahl; $i++) {
echo substr($teile[$i],0,-8)."<br>";
}

?>


Nur jetzt will ich das die Variablen zusammengerechnet werden also wenn es die eine Variable schon gibt nur mit einem anderen punktewert dann soll er das zusammenrechnen ansonsten eine neue variable erstellen bzw. ein array
 
Xaver / DTH8 ~11~ Ocean`s Eleven 1500
Xaver / DTH7 ~11~ Ocean`s Eleven 1500
Xaver / DTH5 ~11~ Ocean`s Eleven 1500
Xaver / DTH10 ~11~ Ocean`s Eleven 1500
Xaver / DTH9 ~11~ Ocean`s Eleven 1500
Xaver / DTH11 ~11~ Ocean`s Eleven 1500
Xaver / DTH8 ~11~ Ocean`s Eleven 1500
Xaver / DTH7 ~11~ Ocean`s Eleven 1500
Xaver / DTH9 ~11~ Ocean`s Eleven 1500
Xaver / DTH11 ~11~ Ocean`s Eleven 1500
Xaver / DTH10 ~11~ Ocean`s Eleven 1500

das gibt er jetzt aus!! und die identischen DTHX soll er dann zusammenrechnen das dann am schluss die gesamt zahl von diesem einem DTHX rauskommt
 
Zurück