php.de

Zurück   php.de > Lösungen durch Skripte > Scriptbörse

Scriptbörse PHP Lösungen für nen schmalen Taler

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.01.2011, 09:54  
Neuer Benutzer
 
Registriert seit: 25.03.2010
Beiträge: 22
PHP-Kenntnisse:
Anfänger
BVB09 befindet sich auf einem aufstrebenden Ast
Standard Werte addieren und sortiert ausgeben

Hallo zusammen.

Ich habe diese Frage auch schon in einem anderen Bereich gepostet (Link (nach Verein sortieren und Werte addieren ?). Der Thread kann gelöscht werden).
Denke das ich hier eher am richtigen Platz bin, weil ich bin bereit den jenigen wo mir das Script erstellen kann für die Arbeit zu entlöhnen.

Also zu meinem Anliegen.
Ich habe mehrere Textdateien und möchte diese Zeile für Zeile auslesen und dann eine Ausgabe erhalten pro Verein (nur einmal pro Verein).
Der Aufbau der Textdatei sieht so aus:
Code:
Name§Verein§Tore§Gelbe Karten§Gelb-Rote Karten§Rote Karten§Fairness
E. Abidal§FC Barcelona§0§0§0§1§-5
Pedro§FC Barcelona§0§0§1§0§-3
B. Krkic§FC Barcelona§0§1§0§0§-1
D. Abraham§FC Basel§0§0§1§0§-3
S. Inkoom§FC Basel§0§0§0§1§-5
B. Huggel§FC Basel§0§1§0§0§-1
Wichtig für mein Vorhaben sind momentan nur "Verein" und "Fairness".

Ich möchte gerne das die "Fairness" Werte der gleichen Vereine addiert werden.
In der Ausgabe sollte dann nur der "Verein" und die "Fairness" Werte stehen, also in etwa so:
FC Barcelona -9
FC Basel -9

Folgendes habe ich bereits zusammengekriegt:
PHP-Code:
<?php

$spielerstats 
= array(
    
"lmo/addon/spieler/stats/testliga1.stat",
    
"lmo/addon/spieler/stats/testliga2.stat",
    
"lmo/addon/spieler/stats/testliga3.stat"
);

$dataarray = array();
for (
$i=0;$i<count($spielerstats);$i++) {
    
$dataarray array_merge(file($spielerstats[$i]), $dataarray);
}

for (
$i 1$i count($dataarray); $i++) {
    
$zeilearray explode("§"$dataarray[$i]);
    
$V[$i] = $zeilearray[1];
    
$F[$i] = $zeilearray[6];
}

array_multisort($FSORT_NUMERICSORT_ASC$V );

for (
$i  0;  $i 6$i++) {

    if (
$V[$i]) {
        
$platz $i +1;
    }

echo 
"<tr>";
echo 
"<td>$platz</td>";
echo 
"<td>$V[$i]</td>";
echo 
"<td>$F[$i]</td>";
echo 
"</tr>";
}

?>
Hier werden einfach die Verein und Fairness Werte ausgelesen, nur fehlt eben die Funktion das die mehrfach vorhandene Vereine inkl. ihren Werte addiert und dann ausgegeben werden.


Wenn ich könnte dann würde ich es selbst machen, kenne mich aber in PHP zu wenig aus bzw. habe mich noch zu wenig in die Thematik eingearbeitet.

Ich bitte um Hilfe, bin auch wie gesagt bereit was dafür zu bezahlen wenn das ganze dann funktioniert wie ich mir das vorgestellt habe.
Weil ich schätze das wie sich manche hier Zeit nehmen nur um anderen Usern zu helfen.

Es wäre echt nett wenn mir jemand helfen könnte.

MfG
BVB09 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 20.01.2011, 10:41  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.269
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Codeschnipsel austauschen:

PHP-Code:
<?php
$teams 
= array();
for (
$i 1$i count($dataarray); $i++) { 
    
$zeilearray explode("§"$dataarray[$i]);
    
$verein $zeilearray[1];
    
$fairness $zeilearray[6];
    if (!
array_key_exists($verein$teams)) {
      
$teams[$verein] = 0;
    }
    
$teams[$verein] += $fairness;
}
function 
intCmp($f1$f2) {
  return 
$f1 $f2 ? -: ($f1 $f2 0);
}
uasort($teams"intCmp");
var_dump($teams);
?>
Siehe auch: http://www.php.de/wiki-php/index.php...ndardverfahren)


(Bezahlung dann ans örtliche Tierheim )
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 21.01.2011, 10:21  
Neuer Benutzer
 
Registriert seit: 25.03.2010
Beiträge: 22
PHP-Kenntnisse:
Anfänger
BVB09 befindet sich auf einem aufstrebenden Ast
Standard

So endlich wieder da

Also erstmal ein grosses dankeschön an dich Chriz für deine mühen

Ich habe jetzt ein wenig versucht den Codeschnipsel einzufügen, leider klappt das nicht bzw. ich mache wohl was falsch.

Wo muss ich den Codeschnipsel den genau einfügen bei dem Skript wo ich oben im ersten Beitrag gepostet habe ?

Wäre echt nett wenn du mir da nochmals helfen könntest

MfG
BVB09 ist offline   Mit Zitat antworten
Alt 21.01.2011, 16:01  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.269
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

PHP-Code:
<?php 
$spielerstats 
= array( 
    
"./testliga1.txt"// meine Testdatei 1
    
"./testliga2.txt" // zweite Testdatei
); 

$dataarray = array(); 
for (
$i=0;$i<count($spielerstats);$i++) { 
    
$dataarray array_merge// Dateien zusammenfügen
        
array_slice// 1. Zeile (CSV-Header) abschneiden
            
array_map// Zeilenumbruch am Ende jeder Zeile entfernen
                
"rtrim",
                
file($spielerstats[$i]) // Datei zeilenweise einlesen
            
),
            
1
        
),
        
$dataarray
    
); 


$teams = array();
for (
$i 1$i count($dataarray); $i++) { 
    
$zeilearray explode("§"$dataarray[$i]); // Spaltenweise auftrennen
    
$verein $zeilearray[1]; // unser Verein
    
$fairness $zeilearray[6]; // die Fairnesspunkte
    
if (!array_key_exists($verein$teams)) {
      
$teams[$verein] = 0// Team initialisieren
    
}
    
$teams[$verein] += $fairness// Fairnesspunkte aufsummieren
}
// Vergleichsfunktion
function intCmp($f1$f2) {
    
// Fairnesspunkte vergleichen, wenn Team1 weniger hat als Team2 ist es kleiner => -1
    // wenn sie gleichviele Punkte haben => 0
    // wenn Team2 größer ist => 1
  
return $f1 $f2 ? -: ($f1 $f2 0);
}
// unsere Teams mit der Vergleichsfunktion aufrufen
// as uAsort behält die Schlüssel (unsere Teams) bei
uasort($teams"intCmp");
// Dump des Array ausgeben
var_dump($teams);
testliga1.txt
Code:
Name§Verein§Tore§Gelbe Karten§Gelb-Rote Karten§Rote Karten§Fairness
E. Abidal§FC Barcelona§0§0§0§1§-5
Pedro§FC Barcelona§0§0§1§0§-3
B. Krkic§FC Barcelona§0§1§0§0§-1
D. Abraham§FC Basel§0§0§1§0§-3
S. Inkoom§FC Basel§0§0§0§1§-5
B. Huggel§FC Basel§0§1§0§0§-2
testliga2.txt
Code:
Name§Verein§Tore§Gelbe Karten§Gelb-Rote Karten§Rote Karten§Fairness
a§Karlsruher SC§0§0§0§1§-2
b§FC Bayern Muenchen§0§0§1§0§-3
c§Karlsruher SC§0§1§0§0§-3
d§Borussia Dortmund§0§0§1§0§-3
e§Karlsruher SC§0§0§0§1§-5
f§FC Bayern Muenchen§0§1§0§0§-1
Ausgabe:
Code:
array
  'FC Basel' => int -10
  'FC Barcelona' => int -9
  'Karlsruher SC' => int -8
  'FC Bayern Muenchen' => int -4
  'Borussia Dortmund' => int -3
Wenn du nach umgekehrter Fairness sortieren willst, musst du anschließend $teams = array_reverse($teams, true) verwenden.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 21.01.2011, 17:19  
Neuer Benutzer
 
Registriert seit: 25.03.2010
Beiträge: 22
PHP-Kenntnisse:
Anfänger
BVB09 befindet sich auf einem aufstrebenden Ast
Standard

Nice

Habe zum testen das mal alles so übernommen.
Kann es sein das da noch ein kleiner Fehler drin ist oder wie kommts das Karlsruher SC -8 hat. Die müssten doch -10 haben ?

Aber auf jeden Fall schon mal ein grosses dankeschön das du mir hilfst

MfG
BVB09 ist offline   Mit Zitat antworten
Alt 21.01.2011, 17:44  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.269
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Hallo,

richtig, da hab ich den KSC wohl übervorteilt

mach aus $i = 1 ein $i = 0, dann wird der erste Eintrag nicht mehr ignoriert.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 21.01.2011, 19:53  
Neuer Benutzer
 
Registriert seit: 25.03.2010
Beiträge: 22
PHP-Kenntnisse:
Anfänger
BVB09 befindet sich auf einem aufstrebenden Ast
Standard

hehe

THX!!!
Das hat funktioniert, super !

Jetzt wird es ja so ausgegeben:
Code:
array(5) { ["Karlsruher SC"]=> int(-10) ["FC Basel"]=> int(-10) ["FC Barcelona"]=> int(-9) ["FC Bayern Muenchen"]=> int(-4) ["Borussia Dortmund"]=> int(-3) }
Wie kann ich das jetzt in einer Tabelle (html) ausgeben ?
...ohne diese Klammern, int usw.
Nur die Werte (so wie im Script, erster Beitrag), also z.B. so:
PHP-Code:
...
<
tr>
<
td>$verein</td>
<
td>$fairness</td>
</
tr>
... 
MfG

Geändert von BVB09 (21.01.2011 um 20:00 Uhr).
BVB09 ist offline   Mit Zitat antworten
Alt 21.01.2011, 20:14  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.269
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Manche behaupten ja, dass das hier ein Entwicklerforum ist ... Wie wärs also du bringst dich auch mal konstruktiv in die Lösung ein?
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 21.01.2011, 20:52  
Neuer Benutzer
 
Registriert seit: 25.03.2010
Beiträge: 22
PHP-Kenntnisse:
Anfänger
BVB09 befindet sich auf einem aufstrebenden Ast
Standard

Ich würde ja nicht fragen wenn ich es bereits wüsste

Also habe mal ein wenig gegoogelt, das müsste in etwa so irgendwie aussehen:

PHP-Code:
// Dump des Array ausgeben
foreach ($teams as $verein)
{
echo 
"<tr>";
echo 
"<td>$verein</td>";
echo 
"<td>$fairness</td>";
echo 
"</tr>";

Wobei so funktioniert es nicht wirklich.

Ist die folgende Angabe korrekt ?
($teams as $verein)

MfG

Geändert von BVB09 (21.01.2011 um 22:17 Uhr).
BVB09 ist offline   Mit Zitat antworten
Alt 22.01.2011, 14:04  
Neuer Benutzer
 
Registriert seit: 25.03.2010
Beiträge: 22
PHP-Kenntnisse:
Anfänger
BVB09 befindet sich auf einem aufstrebenden Ast
Standard

So nach ein wenig studieren und probieren hat es dann doch noch geklappt

PHP-Code:
// Dump des Array ausgeben
foreach ($teams as $verein => $fairness)
{
echo 
"<tr>";
echo 
"<td>$verein</td>";
echo 
"<td>$fairness</td>";
echo 
"</tr>";

Danke für die Unterstützung !

MfG
BVB09 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
XML Daten sortiert ausgeben ?! toney PHP Einsteiger 2 07.12.2010 18:37
[Erledigt] durch rekursive Funktion ermittelte Werte in Array + ausgeben P. H. Pee PHP Tipps 2010 26 09.09.2010 18:15
Bestimmte Werte aus Datenbank ausgeben Peter1232 PHP Tipps 2010 2 01.09.2010 21:48
[Erledigt] Gleiches Datum zusammenfassen / Werte in einer Zeile ausgeben badaboom PHP Tipps 2010 7 25.04.2010 17:03
XML Inhalt sortiert ausgeben 9999 PHP Tipps 2009 25 05.07.2009 11:08
Datumsformat "Monat Jahr" eingeben und sortiert ausgeben. dahead PHP Tipps 2009 15 01.04.2009 10:34
(MySQL) Ergebnisse Zählen und sortiert ausgeben... Hawk Datenbanken 5 04.03.2007 17:08
Werte aus Tabelle addieren? Calli PHP Tipps 2006 3 02.04.2006 16:52
2 verschiedene timestamps zusammen addieren und ausgeben. Bruce PHP Tipps 2007 4 06.12.2005 09:19
alle Werte in einem Array addieren phpbeginner PHP Tipps 2005-2 4 22.09.2005 20:46
doppelte Werte / Strings einer Spalte nur einmal ausgeben... Datenbanken 2 29.07.2005 12:10
Mysql: Daten nach Anfangsbuchstaben Sortiert Ausgeben PHP Tipps 2005-2 5 09.07.2005 15:56
[Erledigt] Datenbank sortiert ausgeben! Datenbanken 4 23.03.2005 12:49
Werte aus Query addieren stefan-miti Datenbanken 11 22.12.2004 10:58
Datenbankeinträge sortiert ausgeben lassen PHP Tipps 2004 3 22.10.2004 22:10

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php zahlen addieren ausgeben, $zeile array = explode(\\, $dataarray[$i]);, xml gleiche werte finden und addieren, spalten addierenund mit php in html ausgeben, php xml lesen und addieren, zahlen eingeben und sortiert ausgeben php, werte aus textdatei addieren php script, php explode zusammenrechnen, php array auslesen und addieren, xml werte addieren, php werte addieren und ausgeben, php array doppelte werte addieren, counter ausgeben zahlen hinzuzählen php, zahlen einlesen und in ein array sortiert ausgeben, array_map 2 arrays addieren, array_combine doppelte eintrag addieren, addierter wert in feld ausgeben in html, 2 txt files mit php auslesen addieren und ausgeben, php array doppelte einträge addieren -excel, html werte addieren

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:19 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum