PHP阵列排序无法正常工作



以下是我的数组的输出

的输出
$array1 = Array ( [d] => 5 [e] => 1 [a] => 3 [b] => 3 [c] => 3 [f] => 3 )

我想排序...

Array ( [d] => 5 [a] => 3 [b] => 3 [c] => 3 [f] => 3 [e] => 1)

我正在使用Arsort($ array1(

导致var_dump($array1)

array (size=6)
'd' => int 5
'f' => int 3
'c' => int 3
'a' => int 3
'b' => int 3
'e' => int 1

无论如何要解决此问题?

尝试以下:

$array1 = [
    'd' => 5,
    'e' => 1,
    'a' => 3,
    'b' => 3,
    'c' => 3,
    'f' => 3
];
array_multisort(array_values($array1), SORT_DESC, array_keys($array1), SORT_ASC, $array1);
print_r($array1);

首先,array_values($array1), SORT_DESC将以降序排序值,然后array_keys($array1), SORT_ASC将键分为上升顺序,最后两个东西都适用于主数组,即$array1

O/P - Array ( [d] => 5 [a] => 3 [b] => 3 [c] => 3 [f] => 3 [e] => 1 ) 

我希望这次我得到您想要的东西。手指交叉!

您可以这样工作。

    <?php
    $array1 = array( "[d]" => 5,"[e]" => 1,"[a]" => 3,"[b]" => 3,"[c]" => 3,"[f]" => 3 );
    $a = arsort($array1);
    foreach($array1 as $x => $x_value) {
        echo "Key=" . $x . ", Value=" . $x_value;
        echo "<br>";
    }
    ?>
output:
Key=[d], Value=5
Key=[f], Value=3
Key=[c], Value=3
Key=[a], Value=3
Key=[b], Value=3
Key=[e], Value=1

您可以使用Uasort。

$array = array('d' => 5, 'e' => 1, 'a' => 3, 'b' => 3, 'c' => 3, 'f' => 3);
function cmp($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a > $b) ? -1 : 1;
}
uasort($array, 'cmp');
print_r($array);

我测试了代码,肯定会适合您。

最新更新