Einzelnen Beitrag anzeigen
  #19 (permalink)  
Alt 23-04-2012, 09:21
Benutzerbild von fireweasel fireweasel
 Registrierter Benutzer
Links : Onlinestatus : fireweasel ist offline
Registriert seit: Sep 2008
Ort: At home
Beiträge: 851
fireweasel wird schon bald berühmt werdenfireweasel wird schon bald berühmt werden
fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken
Standard

Zitat:
Zitat von Wasser_Wanderer Beitrag anzeigen
Fazit:
Die vorgeschlagenen Lösungen funktionieren.
Hand hoch, wer etwas anderes erwartet hatte ...

Zitat:
Aber:
Das die Funktion max() nach ca 1100 Werten schlapp gemacht hatte,
das ist mir immer noch nicht klar.
Das tat sie definitiv nicht. Sie kann Arrays mit wesentlich mehr Einträgen problemlos verarbeiten. Den Fehler musst du daher bei dir selbst suchen ...

Zitat:
Mein Hoster unterstützt diese Funktion nicht. PHP Version 5.2.9
Lokal mit xampp geht es. PHP Version 5.3.0
Ich liebe es, wenn sich ein Fragensteller mehrdeutig ausdrückt. Dass mit "unterstützt diese Funktion nicht" das Basteln von anonymen Funktionen über function(){} und nicht max() gemeint ist, erschließt sich nur, wenn man weiß, welche PHP-Version was von beiden kann.

Du darfst create_function() gerne nutzen. In der normalen Anwendung (Aufruf) gibts keine Unterschiede. Nur beim Deklarieren der Funktion wirst du in den meisten Quelltext-Editoren aufs Syntax-Highlighting verzichten müssen.

PHP-Code:
$max array_reduce
    
$data,  
    
create_function('& $max, $entry''return max($entry[4], $max);'), 
    

); 
Selbstverständlich kann man etwas so triviales wie die größte Zahl aus einer Reihe von Zahlen auch von Hand in einer Schleife berechnen:

PHP-Code:
$max 0// der Initialwert sollte möglichst klein sein
foreach ($data as $entry) {
    
$max max($entry[4], $max);

... oder ganz ohne die blödsinnige max()-Funktion:

PHP-Code:
$max 0// der Initialwert sollte möglichst klein sein
foreach ($data as $entry) {
    
$max $entry[4] > $max $entry[4] : $max;

... oder (vielleicht) noch besser verständlich:

PHP-Code:
$max 0// der Initialwert sollte möglichst klein sein
foreach ($data as $entry) {
    if (
$entry[4] > $max) {
        
$max $entry[4];
    }

Zitat:
Oder ich ziehe um. Das werd ich eh machen müssen, alleine
wegen OOP.
Wieso? Die OOP-Fähigkeiten von PHP 5.3.x sind nicht wesentlich besser als die der anderen 5-er Versionen. Das komische "Late-Static-Binding" ist ganz nett, aber man braucht es nicht, um objekt-orientiert zu programmieren.

Der Grund, warum man eine möglichst aktuelle PHP-Version benutzen sollte, sind die ständig auftretenden Sicherheitsprobleme. Die gibts zwar auch im aktuellen 5.4.0 in ausreichender Zahl, aber wenigstens sind da die meisten bekannten Löcher gestopft.
Mit Zitat antworten