Ich versuche, eine App zu machen, die mir erlauben zu ordnen und zu sortieren Dezimalzahl nach seinen Wert, aber array_flip Funktion kann nicht String und Dezimalzahl Flip,wie Flip STRING und Dezimal/Float-Werte in Array PHP Flip?
<?php
$myarray = array(1,0.334,-0.334,-1);
//create a copy and sort
$myarray_copy = $myarray;
rsort($myarray_copy);
//reverses key and values
$myarray_copy = array_flip($myarray_copy);
//create result by using keys from sorted values + 1
foreach($myarray as $val)
$myarray2[] = ($myarray_copy[$val]+1);
//print final array
print_r($myarray2);
print_r($myarray);
?>
und es gibt eine Warnung über array_flip
Warnung: array_flip() [function.array-flip]: Kann nur STRING- und INTEGER-Werte umkehren! in C: \ xampp \ htdocs \ ranking.php on line 9
, wissen Sie, wie man mit diesen umgehen? Gibt es eine Lösung?
Sie müssen die Werte des Arrays in einen String konvertieren, um es so einfach wie möglich zu machen. Zum Beispiel können Sie "i" mit jedem Wert verketten. Dann sind die Werte gültige Indexwerte für die Umkehrung. – kainaw
Sie können die Array-Werte als 'array (" 1 "," 0.334 "," -0.334 "," - 1 ") deklarieren;' aber rsort ($ myarray_copy, SORT_NUMERIC) ', um numerische Sortierung zu erzwingen. – apokryfos
Warum möchten Sie das Array umdrehen? Wenn Sie die Schlüssel/Wert-Beziehung pflegen und nach Wert sortieren müssen, verwenden Sie 'arsort' oder' asort'. Seien Sie klarer über Ihr beabsichtigtes Ziel. – Walf