0
我试图做一个应用程序,让我按照它的价值排名和排序十进制数,但array_flip功能不能翻转字符串和十进制数,如何在数组PHP中翻转STRING和decimal/float值?
<?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);
?>
,并有一个关于array_flip
警告Warning:array_flip()[function.array-flip]:只能翻转STRING和INTEGER值!在C:\ xampp \ htdocs \ ranking.php上线9
,你们知道如何处理这些?有没有解决方法?
您需要将数组的值转换为字符串以尽可能简单。例如,您可以将“i”连接到每个值。然后,这些值将是翻盖的有效索引值。 – kainaw
您可以将数组值声明为array(“1”,“0.334”,“ - 0.334”,“ - 1”);'但是执行rsort($ myarray_copy,SORT_NUMERIC)'强制进行数字排序。 – apokryfos
你为什么要翻转阵列?如果您需要维护键值分配并按值排序,请使用'arsort'或'asort'。更清楚你的预期目标。 – Walf