朋友我正在学习php的学校管理系统项目。该项目差不多完成了。但问题是,如果一名新学生报名参加或离开课程,我们如何重新排列学生名单。
表示班级有学生喜欢
|---------------------|------------------|------------------|
| id | roll | name |
|---------------------|------------------|------------------|
| 1 | 1 | abi |
|---------------------|------------------|------------------|
| 2 | 2 | bibin |
|---------------------|------------------|------------------|
| 3 | 3 | david |
|---------------------|------------------|------------------|
等...
当新学生注册姓名" abhishek"时,我们需要在abi和bibin之间添加。当学生从名为“bibin' ,我们需要重新排列每个学生的卷号。我们如何使用php重新排列学生。
我有一个像这样的数组
array(3) {
[0]=>
array(9) {
["id"]=>string(2) "1"
["rvsm_class"]=> string(3) "ukg"
["rvsm_rollno"]=> string(1) "1"
["rvsm_name"]=> string(5) "Abi"
}
[1]=>
array(9) {
["id"]=> string(2) "2"
["rvsm_class"]=> string(3) "ukg"
["rvsm_rollno"]=> string(1) "2"
["rvsm_name"]=> string(5) "bibin"
}
[2]=>
array(9) {
["id"]=> string(2) "3"
["rvsm_class"]=> string(3) "ukg"
["rvsm_rollno"]=> string(1) "3"
["rvsm_name"]=> string(4) "david"
}
}
任何人都可以帮助我....
答案 0 :(得分:0)
我也不建议卷号应该改变。但是,如果您仍然希望更改而不是以下代码将帮助您:
$student_arr = array(
array("id" => 1, "rvsm_class" => "ukg", "rvsm_rollno" => 1, "rvsm_name" => "Abi"),
array("id" => 2, "rvsm_class" => "ukg", "rvsm_rollno" => 2, "rvsm_name" => "bibin"),
array("id" => 3, "rvsm_class" => "ukg", "rvsm_rollno" => 3, "rvsm_name" => "david"),
array("id" => 4, "rvsm_class" => "ukg", "rvsm_rollno" => 4, "rvsm_name" => "Abhi"),
);
function sortByName($a, $b) {
return strcmp($a['rvsm_name'],$b['rvsm_name']);
}
usort($student_arr, 'sortByName');
$cnt=1;
$updatedArr = array();
foreach($student_arr as &$value){
$value['rvsm_rollno'] = $cnt++;
}
echo "<pre>";
print_r($student_arr);
<强>输出:强>
Array
(
[0] => Array
(
[id] => 4
[rvsm_class] => ukg
[rvsm_rollno] => 1
[rvsm_name] => Abhi
)
[1] => Array
(
[id] => 1
[rvsm_class] => ukg
[rvsm_rollno] => 2
[rvsm_name] => Abi
)
[2] => Array
(
[id] => 2
[rvsm_class] => ukg
[rvsm_rollno] => 3
[rvsm_name] => bibin
)
[3] => Array
(
[id] => 3
[rvsm_class] => ukg
[rvsm_rollno] => 4
[rvsm_name] => david
)
)
希望这有帮助!
答案 1 :(得分:0)
我假设您从数据库中检索学生。你可以简单地使用像
这样的东西 SELECT * FROM students ORDER BY class,name;
所以你不必费心在PHP中重新安排数组。