如何在php中对具有负值的关联数组进行降序排序?

如何在php中对具有负值的关联数组进行降序排序?,php,arrays,sorting,Php,Arrays,Sorting,我正在网上考试网站上工作。在这里,我有一个关联数组,其中key作为子部分的名称,value作为相应子部分的分数。所以我想根据值按降序对数组进行排序。但我的价值观是负面的。我使用了arsort函数按值对关联数组进行排序,但它不适用于负值。实际上,我想先展示一下分数最低的部分。我正在提供我的代码。请帮我解决这个问题 Array ( [sentence-equivalence] => -6 [reading-comprehension] => -16 [text-c

我正在网上考试网站上工作。在这里,我有一个关联数组,其中key作为子部分的名称,value作为相应子部分的分数。所以我想根据值按降序对数组进行排序。但我的价值观是负面的。我使用了arsort函数按值对关联数组进行排序,但它不适用于负值。实际上,我想先展示一下分数最低的部分。我正在提供我的代码。请帮我解决这个问题

Array
(
    [sentence-equivalence] => -6
    [reading-comprehension] => -16
    [text-completion] => -20
    [algebra] => -24
    [geometry] => -26
    [arithmetic] => -31
    [common-data] => -37
    [statistics] => -38
)
您可以分别使用和,或者如果您更喜欢一种方法,那么您可以使用并传递您自己的比较器函数。下面是一些例子。希望有帮助

$array = array(
    'sentence-equivalence' => -6,
    'reading-comprehension' => -16,
    'text-completion' => -20,
    'algebra' => -24,
    'arithmetic' => -31,
    'geometry' => -26,
    'common-data' => -37,
    'statistics' => -38,
);

asort($array, SORT_NUMERIC);
$array = array_reverse($array, true); // true stands for preserve keys.

var_dump($array);

// Otherwise you might also use uasort:

uasort($array, function($a, $b) { 
    return $a < $b;
});
$array=array(
“句子等值”=>-6,
“阅读理解”=>-16,
“文本完成”=>-20,
“代数”=>-24,
“算术”=>-31,
“几何体”=>-26,
“公共数据”=>-37,
“统计数据”=>-38,
);
asort($array,SORT\u NUMERIC);
$array=array_reverse($array,true);//true代表保留密钥。
变量转储($数组);
//否则,您也可以使用uasort:
uasort($array,function($a,$b){
返回$a<$b;
});

使用
array\u multisort
并将第二个参数作为
SORT\u DESC
传递。试试这个

$s = Array
(
    'sentence-equivalence' => -6,
    'reading-comprehension' => -16,
    'text-completion' => -20,
    'algebra' => -24,
    'arithmetic' => -31,
    'geometry' => -26,
    'common-data' => -37,
    'statistics' => -38,
);


array_multisort($s, SORT_DESC); //array_multisort($s, SORT_ASC); for ascending order
print '<pre>';
print_r($s);
$s=Array
(
“句子等值”=>-6,
“阅读理解”=>-16,
“文本完成”=>-20,
“代数”=>-24,
“算术”=>-31,
“几何体”=>-26,
“公共数据”=>-37,
“统计数据”=>-38,
);
数组_multisort($s,SORT_DESC)//数组\u multisort($s,SORT\u ASC);升序
打印“”;
印刷品(港币);;

我不明白为什么它不适用于负值。显示您的尝试。是否可能与WTH重复?您已经用百科全书中关于PHP的条目中的一节替换了您的问题@约格什克:不是真的,不是