brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 01-01-2006, 20:44
Thoma
 Newbie
Links : Onlinestatus : Thoma ist offline
Registriert seit: Jan 2006
Beiträge: 17
Thoma ist zur Zeit noch ein unbeschriebenes Blatt
Standard Durchschnittswert eines Arrays

Hallo Leute,

erst mal nen Frohes neues Jahr.

Ich möchte zwei Arrays addieren und den Durchschnitt in einen neuen Array ablegen:

PHP-Code:
<?  
$a 
= array(1,2,3); // Array A  
$b = array(4,5,6); // Array B  
$e = array(); // Ergebnis-Array 

$a array_pad ($amax(count ($a),count ($b)),0); // Array A und B 
$b array_pad ($bmax(count ($a),count ($b)),0); // gleich lang machen    

for ($i=0$i<(count ($a)) ; $i++)  
{  
$c $c + ($a[$i]+$b[$i]);  
$d $c /($i+1);  
array_push ($e$d); // Array e füllen  
}  
print_r($e);  // Array e ausgeben
?>
Nun wollte ich fragen ob das vielleicht auch einfacher geht oder ob es vielleicht eine Funktion dafür gibt.

Mit freundlichen Grüßen

Thoma
Mit Zitat antworten
  #2 (permalink)  
Alt 01-01-2006, 21:19
MelloPie
 PHP Master
Links : Onlinestatus : MelloPie ist offline
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
MelloPie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

den durchschnitt bekommste mit array_sum() und count() schon mal einfacher.
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
Mit Zitat antworten
  #3 (permalink)  
Alt 01-01-2006, 21:33
Thoma
 Newbie
Links : Onlinestatus : Thoma ist offline
Registriert seit: Jan 2006
Beiträge: 17
Thoma ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich will nicht den Durchschnitt des ganzen Arrays, sondern immer den der vorangegangenen Werte.

Im Beispiel wäre das dann:
$a = array(1,2,3);
$b = array(4,5,6);

$e = array(5,6,7);


Es kann aber auch vorkommen, das die Arrays A und B unterschiedlich viele Werte haben.

Beispiel:
$a = array(3,2,4,4);
$b = array(4,5,6);

$e = array(7,7,8,7);
Mit Zitat antworten
  #4 (permalink)  
Alt 01-01-2006, 21:46
MelloPie
 PHP Master
Links : Onlinestatus : MelloPie ist offline
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
MelloPie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

dann nimm doch Deine funktionalität,
warum allerdings der Durchschnitt von 4,1 = 5 sein soll das weisst nur Du?
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
Mit Zitat antworten
  #5 (permalink)  
Alt 01-01-2006, 21:50
Thoma
 Newbie
Links : Onlinestatus : Thoma ist offline
Registriert seit: Jan 2006
Beiträge: 17
Thoma ist zur Zeit noch ein unbeschriebenes Blatt
Standard

_

Geändert von Thoma (01-01-2006 um 21:55 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 01-01-2006, 21:53
Thoma
 Newbie
Links : Onlinestatus : Thoma ist offline
Registriert seit: Jan 2006
Beiträge: 17
Thoma ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wie ich oben bereits schrieb, werden der beiden Arrays zunächst addiert (1+4=5).
Ich dachte, es gäbe vielleicht etwas einfacheres, sowohl um in zwei Arrays das jeweils n-te Element zu addieren, wie auch einen laufenden Durchschnitt zu bilden.
Mit Zitat antworten
  #7 (permalink)  
Alt 01-01-2006, 23:11
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hab ich jetzt auch nicht verstanden, was du möchtest.

arrays sind mengen, und eine addition ist in dem sinne nicht das gleiche, wie eine vereinigung. was jetzt "vorangegangene" werte sind ist mir ebenso unklar wie das, was du berechnest und was $a, $b und $e sein soll.
Mit Zitat antworten
  #8 (permalink)  
Alt 01-01-2006, 23:45
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Mir ist egal, was du vorhast. Ich sehe, was bei obigem Code rauskommt und dass dein error_reporting keine Notices ausgibt - sonst gäbe es "undefined variable c".

Also klappt auch dies hier:
PHP-Code:
$a = array(1,2,3);
$b = array(4,5,6);

for (
$i=0$max=max(count($a),count($b)); $i<$max$i++) {
    
$e[]=($sum=($a[$i]+$b[$i])+$sum)/($i+1);
}

print_r($e); 
Macht genau das selbe, nutzt lediglich ein paar Features der Sprache. Unschön, aber kurz.
Mit Zitat antworten
  #9 (permalink)  
Alt 01-01-2006, 23:49
Thoma
 Newbie
Links : Onlinestatus : Thoma ist offline
Registriert seit: Jan 2006
Beiträge: 17
Thoma ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Dachte der Quelltext würde sich mehr oder weniger selbst erklären.

$a und $b sind Arrays mit beliebigen ganzzahligen Werten, die Werte mit dem selben Index sollen jeweils addiert werden.

also:

$c[0] = $a[0]+$b[0];
$c[1] = $a[1]+$b[1];
$c[2] = $a[2]+$b[2];
...

in $e steht der Durchschnitt.

also

$e[0] = (1+4)/1 = 5
$e[1] = (1+4+2+5)/2 = 6
$e[2] = (1+4+2+5+3+6)/3 = 7


um es vielleicht etwas einfacher zu machen, jetzt nur der Durchschnitt ohne Addition.

Beispiel:

$a = array(1,3,5);

$e = array(1,2,3);

Die Berechnung sieht hier so aus:

$e[0] = (1)/1 = 1
$e[1] = (1+3)/2 = 2
$e[2] = (1+3+5)/3 = 3

Natürlich müssen die Zahlen im array $e nicht immer Ganzzahlig sein.
Mit Zitat antworten
  #10 (permalink)  
Alt 01-01-2006, 23:57
Thoma
 Newbie
Links : Onlinestatus : Thoma ist offline
Registriert seit: Jan 2006
Beiträge: 17
Thoma ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Vielen Dank, in etwa so was habe ich gesucht, ich meine zur Not wäre meins ja gegangen, aber es sollte ja auch halbwegs effizient sein.

Wobei ich schon sagen muss, das Übersicht auch nicht total unwichtig ist.

Gruß Thoma

Denke so ist es halbwegs übersichtlich und kurz:
PHP-Code:
<?
$a 
= array(1,2,3);
$b = array(4,5,6);

$max max(count($a),count($b));
$sum 0;

for (
$i=0$i<$max $i++)
{
$sum $sum + ($a[$i]+$b[$i]);
$e[] = $sum /($i+1);
}
print_r($e);
?>

Geändert von Thoma (02-01-2006 um 00:32 Uhr)
Mit Zitat antworten
  #11 (permalink)  
Alt 02-01-2006, 00:34
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Das ist noch halbwegs übersichtlich, im Vergleich zu
PHP-Code:
for ($i=0$i<$max=max(count($a),count($b)); $e[]=($sum+=$a[$i]+$b[$i])/($i+=1)); 
Mit Zitat antworten
  #12 (permalink)  
Alt 02-01-2006, 01:16
Thoma
 Newbie
Links : Onlinestatus : Thoma ist offline
Registriert seit: Jan 2006
Beiträge: 17
Thoma ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja vielen Dank, aber man muss es ja nicht gleich übertreiben. Funktioniert wunderbar. Nur die letzte Version werde ich nicht verwenden, wo einige ja schon mühe mit dem ersten Quellcode hatten.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

MariaDB 5.5 veröffentlicht
MariaDB 5.5 veröffentlichtDie freie MySQL-Alternative MariaDB wurde in der stabilen Version 5.5.23 veröffentlicht und soll einige Verbesserungen gegenüber Oracles Communityversion von MySQL mitbringen.

16.04.2012 | Berni

Deutsche Yii Framework Community
Deutsche Yii Framework CommunitySeit dem 19.03.2012 gibt es für die Yii PHP Framework Community ein deutsches Zuhause.

20.03.2012 | dhcomputer

 

Aktuelle PHP Scripte

Advanced Login ansehen Advanced Login

Login-System und Kundenverwaltung, die sich spielend leicht in bestehende Webseiten einbauen lässt und einen enormen Funktionsumfang bietet. Ihre eigene Webseite muss mit Advanced Login nicht umständlich an ein fertiges System angepasst werden.

25.05.2012 Madden | Kategorie: PHP/ Kundenverwaltung
BROM CMS/BelCal 3 ansehen BROM CMS/BelCal 3

Spezielles CMS für Betreiber von Ferienwohnungen. Komplette Seitenerstellung online, Verwaltung mehrerer Objekte, Reservierungssystem mit sofortigem Abgleich im Belegungskalender und vieles mehr bietet dieses Content Management System.

25.05.2012 belcal2 | Kategorie: PHP/ CMS
belbit LiveSupport Script ansehen belbit LiveSupport Script

Schnellen und unkomplizierten Support im LiveSupport-Chat anbieten. Ohne Datenbank und in wenigen Sekunden installiert.

24.05.2012 EichbaumMedia | Kategorie: PHP/ Chat
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:07 Uhr.