首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当一个学生或从php离开php时重新排列学生学号。

当一个学生或从php离开php时重新排列学生学号。
EN

Stack Overflow用户
提问于 2018-03-12 08:47:33
回答 2查看 79关注 0票数 0

朋友们,我在php的学校管理系统项目工作。这个项目几乎完成了。但问题是,如果一个新学生注册或离开班级,我们如何重新排列学生的学号。

意味着一个班级有这样的学生

代码语言:javascript
运行
复制
|---------------------|------------------|------------------|
|      id             |     roll         |  name            |
|---------------------|------------------|------------------|
|       1             |     1            |  abi             |
|---------------------|------------------|------------------|
|       2             |     2            |  bibin           |
|---------------------|------------------|------------------|
|       3             |     3            |  david           |
|---------------------|------------------|------------------|

等等。

当一个新学生注册名字"abhishek“时,我们需要在abi和bibin之间添加。此外,当一个学生从名为“bibin”的班级离开时,我们需要重新排列每个学生的学号。我们怎样才能用php重新安排学生。

我有一个这样的数组

代码语言:javascript
运行
复制
   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"
      }
    }

有人能帮我吗..。

EN

回答 2

Stack Overflow用户

发布于 2018-03-12 16:02:51

我也不建议改变卷数。但是如果你仍然想要改变,那么下面的代码将会帮助你:

代码语言:javascript
运行
复制
$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);

输出:

代码语言:javascript
运行
复制
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
        )

)

希望这能有所帮助!

票数 0
EN

Stack Overflow用户

发布于 2018-03-12 16:58:34

我假设您从数据库中检索您的学生。您可以简单地使用像这样的东西

SELECT * FROM students ORDER BY class,name;

因此,您不必费心在PHP中重新排列数组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49226685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档