학생 점수의 순위를 매긴 후 순위 결과를 출력합니다. 예: $scores = array(90,100,100); 自定义函数实现返回数组 $rank(3,1,1);
$scores = array(90,100,100)
$rank(3,1,1)
<?php
?>
이것은 귀하의 요구를 충족시킬 수 있지만 질문이 있습니다. 시험에서 99점을 받은 사람이 2등을 해야 하는 것 아닌가요?
질문자가 원하는 것은 원래 배열 순서대로 순위를 표시하는 것입니다(동점 가능). 일반적인 아이디어는 위치 정보로 원래 배열을 보완한 다음, 정렬된 결과를 기반으로 순위 배열을 역으로 구성하는 것입니다. 쓰기가 좀 번거롭네요:
n위에 공동 n번째 사람이 여러 명 있을 경우 다음 사람은 n+1번째 사람이 되는데, 이는 질문자의 예시와 약간 다릅니다. 전체 알고리즘의 복잡성 병목 현상은 정렬이며 이는 O(n lgn)입니다.
PHP 고유의 배열 정렬 기능을 사용하시나요?
http://www.php.net/manual/zh/...내장된 데이터 정렬 기능으로 문제를 해결할 수 있습니다
먼저 이 배열을 점수별로 정렬한 다음 이 배열을 다시 삽입하세요. 그런 다음 점수에 따라 열쇠를 얻으십시오.
추가: 귀하의 점수는 데이터베이스에 기록되지 않으므로 순서대로 가져옵니다
<?php
으아아아?>
이것은 귀하의 요구를 충족시킬 수 있지만 질문이 있습니다. 시험에서 99점을 받은 사람이 2등을 해야 하는 것 아닌가요?
질문자가 원하는 것은 원래 배열 순서대로 순위를 표시하는 것입니다(동점 가능). 일반적인 아이디어는 위치 정보로 원래 배열을 보완한 다음, 정렬된 결과를 기반으로 순위 배열을 역으로 구성하는 것입니다. 쓰기가 좀 번거롭네요:
으아악n위에 공동 n번째 사람이 여러 명 있을 경우 다음 사람은 n+1번째 사람이 되는데, 이는 질문자의 예시와 약간 다릅니다. 전체 알고리즘의 복잡성 병목 현상은 정렬이며 이는 O(n lgn)입니다.
PHP 고유의 배열 정렬 기능을 사용하시나요?
먼저 이 배열을 점수별로 정렬한 다음 이 배열을 다시 삽입하세요. 그런 다음 점수에 따라 열쇠를 얻으십시오.
추가: 귀하의 점수는 데이터베이스에 기록되지 않으므로 순서대로 가져옵니다