[php]array_sum

Pagina: 1
Acties:

  • rickmans
  • Registratie: Juli 2001
  • Niet online
Ik heb sinds kort een counter geinstalld op mijn site, echter deze werkt niet op de huidige server. Hij geeft de error dat array_sum een niet gedefinieerde functie is. Echter dit is bij mijn weten gewoon een PHP functie.

dus twee vraagjes
1) waar kan het aan liggen
2) is er een alternatief voor array_sum?

Don't mind Rick


  • Ericston
  • Registratie: Maart 2001
  • Laatst online: 05-08 18:36
1) Heb je wel een PHP versie hoger of gelijk aan 4.0.4?

2) Jawel, bijvoorbeeld:
PHP:
1
2
3
4
5
6
function my_array_sum($array) {
    $i = 0;
    foreach($array as $key)
        $i += $key;
    return $i;
}

  • rickmans
  • Registratie: Juli 2001
  • Niet online
Ericston schreef op 02 september 2002 @ 18:59:
1) Heb je wel een PHP versie hoger of gelijk aan 4.0.4?

2) Jawel, bijvoorbeeld:
PHP:
1
2
3
4
5
6
function my_array_sum($array) {
    $i = 0;
    foreach($array as $key)
        $i += $key;
    return $i;
}
Ja de php versie is correct (zelfs hetzelfde op beide servers) dat is juist het rare. Kan het misschien ergens aan een instelling liggen oid?

Don't mind Rick


  • Ericston
  • Registratie: Maart 2001
  • Laatst online: 05-08 18:36
PHP:
1
2
3
4
5
6
7
function my_array_sum($array) {
    $i = 0;
    foreach($array as $key)
        if ( !is_array($key) )
            $i += $key;
    return $i;
}

Dit is beter, zo werkt ie precies hetzelfde als array_sum zou moeten doen.

Wellicht draait PHP in safe mode, dan is het mogelijk dat functies uitgeschakeltd zijn. Maar waarom iemand array_sum zou willen uitschakelen... :?

[ Voor 0% gewijzigd door Ericston op 02-09-2002 19:10 . Reden: frappante d t fout ]


  • rickmans
  • Registratie: Juli 2001
  • Niet online
Ericston schreef op 02 september 2002 @ 19:07:
PHP:
1
2
3
4
5
6
7
function my_array_sum($array) {
    $i = 0;
    foreach($array as $key)
        if ( !is_array($key) )
            $i += $key;
    return $i;
}

Dit is beter, zo werkt ie precies hetzelfde als array_sum zou moeten doen.

Wellicht draait PHP in safe mode, dan is het mogelijk dat functies uitgeschakeltd zijn. Maar waarom iemand array_sum zou willen uitschakelen... :?
ik denk ook dat het aan de safemode ligt aangezien ik ook niet kan uploaden via php, maar array_sum disablen zie ik niet echt het niet van in :)

Don't mind Rick


  • Ericston
  • Registratie: Maart 2001
  • Laatst online: 05-08 18:36
Ik mag aannemen dat die server dus niet van jou is, in dat geval zou je met de serveradmin contact op kunnen nemen, want ik kan je garanderen dat array_sum sneller is dan my_array_sum. Indien ie toch van jou is moet je even uitvinden waar je die uitgeschakelde functie zut kan vinden, dat weet ik niet precies. :)

  • rickmans
  • Registratie: Juli 2001
  • Niet online
Ericston schreef op 02 september 2002 @ 19:38:
Ik mag aannemen dat die server dus niet van jou is, in dat geval zou je met de serveradmin contact op kunnen nemen, want ik kan je garanderen dat array_sum sneller is dan my_array_sum. Indien ie toch van jou is moet je even uitvinden waar je die uitgeschakelde functie zut kan vinden, dat weet ik niet precies. :)
Het is niet echt mijn server inderdaad. Maar als ik de beste man liev aankijk dan mag ik wel even een paar dingen goed zetten :)

Don't mind Rick


  • sebas
  • Registratie: April 2000
  • Laatst online: 16-12-2025
T'is niet echt een php oplossing, maar ik denk wel een van de meest efficiente manier is om dit met behulp van een database (hier als voorbeeld PostgreSQL) te doen:

Je houdt de counter als sequence bij, en bij elke hit laat je gewoon een query los met bijvoorbeeld:
code:
1
nextval('database.counter_sequence')


Om de counter op te vragen kun je
code:
1
SELECT currval('database.counter_sequence')


Tenminste ik neem aan dat je wel een SQL database gebruikt, in dat geval bespaart je dat nml een heleboel rekenwerk en aangezien dat je counter *hopelijk* een heleboel hits moet gaan tellen heb je het probleem met recordlocking e.d. netjes omzeild, door het aan de database over te laten. Voorkomt telfouten en corrupte tables, en dat is fijn toch? ;)

Hier kun je wat meer lezen over dit soort dingen:
http://www.postgresql.org...p?functions-sequence.html

(Ik weet niet in hoeverre dit ook voor MySQL geldt, maar hej, we hebben het hier over databases en niet over filesystems met MySQL frontend ;), zie ACM,s sig)

Everyone complains of his memory, no one of his judgement.

Pagina: 1