Je cherche le moyen le plus rapide de faire une division entière en php. par exemple, 5/2 devrait être 2 et 6/2 devrait être 3 et ainsi de suite. si je fais simplement cela, php retournera 2.5 dans le premier cas, la seule solution que j'ai pu trouver était d'utiliser intval($my_number/2)
- ce qui n'est pas aussi rapide que je le veux (mais donne les résultats attendus).division entière en php
Quelqu'un peut-il m'aider avec cela?
EDIT:
grâce à vous tous pour vos idées, j'ai utilisé le script postet par rubber_boots pour tester certains d'entre eux avec 10000000 itérations, ici vous pouvez voir les résultats (MAMP sur 3 ou 4 ans MACBOOK avec intel core 2Ghz 2 duo):
start (10000000)
(int)...: 2.26 sec
floor(): 4.36 sec
int_divide(): 2.86 sec
bit-shift: 1.45 sec //note: only works for divisions through powers of 2
intval(): 4.51 sec
round() with PHP_ROUND_HALF_DOWN: 5.48 sec
jusqu'à présent, de changement de bit est le moyen le plus rapide, mais je vais laisser cette question ouverte pour une journée pour voir s'il y a d'autres possibilitys pour cette ...
EDIT2:
mis à jour les résultats, round() ajouté avec PHP_ROUND_HALF_DOWN (grâce à Col._Shrapnel)
Juste curieux combien de calculs impliqués dans votre code pour faire une telle une fonction performance-significative? –
5/2 devrait être 4? est-ce une chose php? – nvuono
je dois faire environ 2-3 millions de calculs où l'utilisation de la chose intval() va prendre 30-40 secondes (et je pense que c'est possible de le faire 2 ou 3 fois plus rapide) – oezi