public function distance(ElementInterface $a, ElementInterface $b) { $aCoordinates = $a->getCoordinates(); $bCoordinates = $b->getCoordinates(); if (array_keys($aCoordinates) != array_keys($bCoordinates)) { throw new \InvalidArgumentException('Unequal elements\' dimensions'); } $sum = 0; foreach ($aCoordinates as $dimension => $value) { $diff = abs($bCoordinates[$dimension] - $aCoordinates[$dimension]); $sum += pow($diff, 2); } $distance = sqrt($sum); return $distance; }