朋友们,我在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"
}
}
有人能帮我吗..。
发布于 2018-03-12 16:02:51
我也不建议改变卷数。但是如果你仍然想要改变,那么下面的代码将会帮助你:
$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
)
)
希望这能有所帮助!
发布于 2018-03-12 16:58:34
我假设您从数据库中检索您的学生。您可以简单地使用像这样的东西
SELECT * FROM students ORDER BY class,name;
因此,您不必费心在PHP中重新排列数组。
https://stackoverflow.com/questions/49226685
复制相似问题