按数值对PHP数组进行排序

Joe*_*ous 4 php arrays sorting

我想排序以下名称

Array ( [Jessie] => 2 [Sarah] => 3 [Simon] => 2 [John] => 2 [Kevin] => 1 [Canvasser] => 8 [canvasser] => 11 )
Run Code Online (Sandbox Code Playgroud)

基于与它们对应的值

我通过以下功能打印了名称

// get canvasser individual names and count houses canvassed
    foreach ($canvassers as $key => $value) {
        // Add to the current group count if it exists
        if ( isset( $canvasser_counts[$value] ) ) {
            $canvasser_counts[$value]++;
        }
        // or initialize to 1 if it doesn't exist
        else {
            $canvasser_counts[$value] = 1;
        }
    }
    print_r($canvasser_counts);
Run Code Online (Sandbox Code Playgroud)

$ canvasper只是简单地拥有所有的名字,例如.

$canvassers = array('Jessie', 'Simon', 'Jessie')
Run Code Online (Sandbox Code Playgroud)

任何帮助都会非常感激,我已经花了这么长时间,但我无法直接对阵列进行正确排序.

dou*_*arp 6

您想使用asort()- http://php.net/manual/en/function.asort.php - 按升序对值进行排序,或者arsort()- http://php.net/manual/en/function.arsort.php - 按降序排序.

鉴于此PHP:

$vals = array("Jessie" => 2, "Sara" => 3, "Simon" => 2, "John" => 2, "Kevin" => 1, "Canvasser" => 8, "canvasser" => 11 );
print_r($vals); // current order
asort($vals); // sort array
print_r($vals); // new order
Run Code Online (Sandbox Code Playgroud)

您将获得以下输出:

Array
(
    [Jessie] => 2
    [Sara] => 3
    [Simon] => 2
    [John] => 2
    [Kevin] => 1
    [Canvasser] => 8
    [canvasser] => 11
)
Array
(
    [Kevin] => 1
    [Jessie] => 2
    [John] => 2
    [Simon] => 2
    [Sara] => 3
    [Canvasser] => 8
    [canvasser] => 11
)
Run Code Online (Sandbox Code Playgroud)