Php 如何在每次页面刷新时洗牌相同级别的数组索引?
**e、 g grade=8,id=724,但索引可以是0到2,grade=6,id=899,在页面刷新时,索引可以是3到6之间的任意值,对于其他级别索引,应采用相同的方式。我需要每次当页面重新加载时,相同级别的索引值应该在其自身的索引值内重新排列**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
$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;