Php 如何在每次页面刷新时洗牌相同级别的数组索引?

Php 如何在每次页面刷新时洗牌相同级别的数组索引?,php,Php,**e、 g grade=8,id=724,但索引可以是0到2,grade=6,id=899,在页面刷新时,索引可以是3到6之间的任意值,对于其他级别索引,应采用相同的方式。我需要每次当页面重新加载时,相同级别的索引值应该在其自身的索引值内重新排列** $arrval = Array ( Array ( 'id' => 19, 'grade' => 5, 'county' => 219 ), Array ( 'id' => 20, 'grade' => 5, 'c

**e、 g grade=8,id=724,但索引可以是0到2,grade=6,id=899,在页面刷新时,索引可以是3到6之间的任意值,对于其他级别索引,应采用相同的方式。我需要每次当页面重新加载时,相同级别的索引值应该在其自身的索引值内重新排列**

$arrval = Array ( 
Array ( 'id' => 19, 'grade' => 5, 'county' => 219 ),
Array ( 'id' => 20, 'grade' => 5, 'county' => 219 ),
Array ( 'id' => 21, 'grade' => 5, 'county' => 219 ),
Array ( 'id' => 22, 'grade' => 5, 'county' => 219 ), 
Array ( 'id' => 899, 'grade' => 6, 'county' => 10 ), 
Array ( 'id' => 898, 'grade' => 6, 'county' => 10 ),
Array ( 'id' => 897, 'grade' => 6, 'county' => 10 ),
Array ( 'id' => 896, 'grade' => 6, 'county' => 10 ),
Array ( 'id' => 895, 'grade' => 8, 'county' => 10 ),
Array ( 'id' => 894, 'grade' => 8, 'county' => 10 ),
Array ( 'id' => 724, 'grade' => 8, 'county' => 3 )
);    
foreach ($arrval as $key => $row)
{       
    $grade[$key]  = $row['grade'];
}    
 array_multisort($grade, SORT_DESC, $arrval);  

echo '<pre>';
print_r($arrval);exit;    

Array
(
    [0] => Array
        (
            [id] => 724
            [grade] => 8
            [county] => 3
        )

    [1] => Array
        (
            [id] => 894
            [grade] => 8
            [county] => 10
        )

    [2] => Array
        (
            [id] => 895
            [grade] => 8
            [county] => 10
        )

    [3] => Array
        (
            [id] => 896
            [grade] => 6
            [county] => 10
        )

    [4] => Array
        (
            [id] => 897
            [grade] => 6
            [county] => 10
        )

    [5] => Array
        (
            [id] => 898
            [grade] => 6
            [county] => 10
        )

    [6] => Array
        (
            [id] => 899
            [grade] => 6
            [county] => 10
        )

    [7] => Array
        (
            [id] => 19
            [grade] => 5
            [county] => 219
        )

    [8] => Array
        (
            [id] => 20
            [grade] => 5
            [county] => 219
        )

    [9] => Array
        (
            [id] => 21
            [grade] => 5
            [county] => 219
        )

    [10] => Array
        (
            [id] => 22
            [grade] => 5
            [county] => 219
        )

)
$arrval=数组(
数组('id'=>19,'grade'=>5,'country'=>219),
数组('id'=>20,'grade'=>5,'country'=>219),
数组('id'=>21,'grade'=>5,'country'=>219),
数组('id'=>22,'grade'=>5,'country'=>219),
数组('id'=>899,'grade'=>6,'country'=>10),
数组('id'=>898,'grade'=>6,'country'=>10),
数组('id'=>897,'grade'=>6,'country'=>10),
数组('id'=>896,'grade'=>6,'country'=>10),
数组('id'=>895,'grade'=>8,'country'=>10),
数组('id'=>894,'grade'=>8,'country'=>10),
数组('id'=>724,'grade'=>8,'country'=>3)
);    
foreach($arrval作为$key=>$row)
{       
$grade[$key]=$row['grade'];
}    
数组_multisort($grade,SORT _DESC,$arrval);
回声';
打印(arrval);出口
排列
(
[0]=>阵列
(
[id]=>724
[职系]=>8
[县]=>3
)
[1] =>阵列
(
[id]=>894
[职系]=>8
[县]=>10
)
[2] =>阵列
(
[id]=>895
[职系]=>8
[县]=>10
)
[3] =>阵列
(
[id]=>896
[职系]=>6
[县]=>10
)
[4] =>阵列
(
[id]=>897
[职系]=>6
[县]=>10
)
[5] =>阵列
(
[id]=>898
[职系]=>6
[县]=>10
)
[6] =>阵列
(
[id]=>899
[职系]=>6
[县]=>10
)
[7] =>阵列
(
[id]=>19
[年级]=>5
[县]=>219
)
[8] =>阵列
(
[id]=>20
[年级]=>5
[县]=>219
)
[9] =>阵列
(
[id]=>21
[年级]=>5
[县]=>219
)
[10] =>阵列
(
[id]=>22
[年级]=>5
[县]=>219
)
)

在按等级排序之前,我会对结果进行洗牌


仔细检查您的一些问题,并在适当的情况下标记任何已回答的问题-。
<?php

// Comparison function
function cmp($a, $b) {
    if ($a['grade'] == $b['grade']) {
        return 0;
    }
    return ($a['grade'] < $b['grade']) ? -1 : 1;
}

$arrval = Array ( 
Array ( 'id' => 19, 'grade' => 5, 'county' => 219 ),
Array ( 'id' => 20, 'grade' => 5, 'county' => 219 ),
Array ( 'id' => 21, 'grade' => 5, 'county' => 219 ),
Array ( 'id' => 22, 'grade' => 5, 'county' => 219 ), 
Array ( 'id' => 899, 'grade' => 6, 'county' => 10 ), 
Array ( 'id' => 898, 'grade' => 6, 'county' => 10 ),
Array ( 'id' => 897, 'grade' => 6, 'county' => 10 ),
Array ( 'id' => 896, 'grade' => 6, 'county' => 10 ),
Array ( 'id' => 895, 'grade' => 8, 'county' => 10 ),
Array ( 'id' => 894, 'grade' => 8, 'county' => 10 ),
Array ( 'id' => 724, 'grade' => 8, 'county' => 3 )
); 

shuffle($arrval);

usort($arrval, "cmp");

echo '<pre>';
print_r($arrval);
exit;