function initialiseCentroids(array $data, $k)
{
    $dimensions = count($data[0]);
    $centroids = array();
    $dimmax = array();
    $dimmin = array();
    foreach ($data as $document) {
        foreach ($document as $dim => $val) {
            if (!isset($dimmax[$dim]) || $val > $dimmax[$dim]) {
                $dimmax[$dim] = $val;
            }
            if (!isset($dimmin[$dim]) || $val < $dimmin[$dim]) {
                $dimmin[$dim] = $val;
            }
        }
    }
    for ($i = 0; $i < $k; $i++) {
        $centroids[$i] = initialiseCentroid($dimensions, $dimmax, $dimmin);
    }
    return $centroids;
}
function initialiseCentroids($normalisedTfidf, $numClusters)
{
    $centroids = array();
    $tfidfmax = array();
    $tfidfmin = array();
    // Min and Max arrays will contain all dimentions (all terms)
    foreach ($normalisedTfidf as $docID => $value) {
        foreach ($value as $term => $tfidfValue) {
            if (!isset($tfidfmax[$term]) || $tfidfValue > $tfidfmax[$term]) {
                $tfidfmax[$term] = $tfidfValue;
            }
            if (!isset($tfidfmin[$term]) || $tfidfValue < $tfidfmin[$term]) {
                $tfidfmin[$term] = $tfidfValue;
            }
        }
    }
    // Randomly generate a centroid, do it 5 times
    for ($i = 0; $i < $numClusters; $i++) {
        $centroids[$i] = initialiseCentroid($tfidfmax, $tfidfmin);
    }
    // Return the centroids (array with index = cluster number -> tf-idf values)
    return $centroids;
}
function inicializa_centroids(array $data, $k)
{
    $dimensions = count($data[0]);
    $centroids = array();
    $dimmax = array();
    $dimmin = array();
    foreach ($data as $document) {
        /* Achar um máximo e um mínimo em que a suposição das centroides possam estar */
        foreach ($document as $dimension => $val) {
            /* Se variável max não existe ou se valor 'x' do primeiro array dentro de data é maior que max */
            if (!isset($dimmax[$dimension]) || $val > $dimmax[$dimension]) {
                $dimmax[$dimension] = $val;
            }
            /* Se variável min não existe ou se valor 'x' do primeiro array dentro de data é menor que max */
            if (!isset($dimmin[$dimension]) || $val < $dimmin[$dimension]) {
                $dimmin[$dimension] = $val;
            }
        }
    }
    for ($i = 0; $i < $k; $i++) {
        $centroids[$i] = initialiseCentroid($dimensions, $dimmax, $dimmin);
    }
    return $centroids;
}