kachnitel / math-utils
PHP library for mathematical operations including median, average, sum, and formula processing
Installs: 59
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/kachnitel/math-utils
Requires
- php: >=8.2
Requires (Dev)
- marcocesarato/php-conventional-changelog: dev-fix/symfony-console-7-compat
- phpunit/phpunit: ^10.0|^11.0
This package is auto-updated.
Last update: 2026-01-29 04:29:11 UTC
README
PHP library for mathematical operations including median, average, sum, and formula processing.
Features
- Basic Statistical Functions: median, average, sum
- Formula Processor: Process complex mathematical formulas with nested functions and parameters
- Secure Evaluation: Protected against code injection attacks
- Pure PHP: No dependencies (except PHPUnit for development)
Installation
composer require kachnitel/math-utils
Usage
Basic Operations
use Kachnitel\MathUtils\Math; // Calculate median $median = Math::median([1, 2, 3, 4, 5]); // 3 // Calculate average $average = Math::average([1, 2, 3, 4, 5]); // 3 // Calculate sum $sum = Math::sum([1, 2, 3, 4, 5]); // 15
Formula Processing
The formula processor supports nested functions, parameters, and basic arithmetic operations (+, -, *, /).
use Kachnitel\MathUtils\Math; // Simple formula $result = Math::process('1 + 1', []); // 2 // Formula with parameters $result = Math::process('$0 * $1', [2, 3]); // 6 // Complex nested formula $result = Math::process( 'average([average([sum($0), sum($1)]),median($2)]) * 2', [ [1, 2, 3, 4], // $0 [5, 6, 7, 8], // $1 [10, 11, 12] // $2 ] ); // Calculated result // Track calculation steps $steps = []; $result = Math::process('average([sum($0), sum($1)])', [[1, 2], [3, 4]], $steps); // $steps will contain each step of the calculation
Supported Functions in Formulas
sum(array)- Sum of array elementsaverage(array)- Average of array elementsmedian(array)- Median of array elements
Security
The formula processor is protected against code injection. All formulas are validated before evaluation:
// This will throw MathException Math::process('1 + 1; echo "injection";', []);
Requirements
- PHP 8.2 or higher
License
MIT License - see LICENSE file for details