wie in meinem Titel schon zu erkennen ist schreibe ich gerade an einer Funktion in der ich ein Array der Form “sort[‘1.4’] = 1.5” erstellen will. Nun ist der Schlüssel des Arrays aber kein Integer und ich kriege daher eine Fehlermeldung. Wie krieg ich Postgres dazu das ich in den Keywerten eines Arrays Strings oder Fließkommawerte schreiben kann?
Habe schon im Internet gesucht aber nichts zu diesem Thema finden können. Ich hoffe ohr könnt mir hier helfen
Gibt es einklich eine Programmiersprache oder sowas, wo ich Elemente in einem Array via Float-Offsets ansprechen kann? Irknwie fehlt mir grad die Vorstellungskraft dafür…
Vielleicht suchst Du ja auch ‘nur’ eine Tabelle mit u.a. einer float-Spalte, in der Du dann ganz normal suchst?
Zum Beispiel in php ist es möglich, weiß nicht inwiefern für dich php eine Programmiersprache ist
Im großen und ganzen wollte ich die Schlüssel gern als String oder Float weil ich in einem Schritt Zahlenwerte sortiere, dann deren Ränge berechne. Und im Schritt 2 wieder durch die nicht sortierten Zahlenwerte laufe und mit deren zugehörigen Rängen rechnen will. Um deren Ränge zu finden müßt ich nun das Ränge-Array durchsuchen. Das wollt ich mir sparen und einfach den Wert als Schlüssel nehmen dann brauch ich nichts suchen.
In php z.B. sieht meine FUnktion wie folgt aus:
function rangcorrelation($x, $y){
...
sort($sortx);
sort($sorty);
//Ränge von x berechnen
$n=1;
$sum=1;
for($i=1;$i<=count($sortx);$i++){
if($sortx[$i]==$sortx[$i-1]){
$n++;
$sum = $sum+$i+1;
}else{
$rangx[''.$sortx[$i-1].''] = $sum / $n;
$n=1;
$sum=$i+1;
}
}
//Ränge von y berechnen
...
//Summe der Quadrate der Differenzen der Ränge
$sum=0;
for($i=0;$i<count($x);$i++){
$sum = $sum + (($rangx[''.$x[$i].''] - $rangy[''.$y[$i].'']) * ($rangx[''.$x[$i].''] - $rangy[''.$y[$i].'']));
}
//r selbst berechnen
$n = count($x);
$r = 1 - ((6*$sum) / ($n*($n*$n-1)));
return $r;
}