当学生或使用php从php转发时重新安排学生卷号

时间:2018-03-12 00:47:33

标签: php arrays sorting

朋友我正在学习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"
      }
    }

任何人都可以帮助我....

2 个答案:

答案 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中重新安排数组。