मैं ऐसे डेटाबेस पर काम कर रहा हूं जो कॉलेज के छात्रों के परीक्षा परिणामों में हेरफेर करता है। असल में, मैं किसी भी समय किसी वर्ग को एक वर्ग को पंसाने, एक MySQL डेटाबेस से रिकॉर्ड खींच रहा हूं। मैं छात्रों को रैंक रैंक करना चाहता हूं, उच्चतम परफॉर्मर के साथ नंबर 1 पर यहां एक उदाहरण है;मैं सरणी मानों को डुप्लिकेट मानों के साथ कैसे रैंक करूं और टाई होने पर कुछ स्थितियों को छोड़ूं?
Marks: 37, 92, 84, 83, 84, 65, 41, 38, 38, 84.
तो मैं एक ही सरणी के रूप में mysql डेटा को कैप्चर करना चाहता हूं। एक बार मेरे पास एक सरणी में डेटा हो जाने के बाद, मुझे प्रत्येक छात्र को कक्षा में एक स्थिति जैसे 1/10 (संख्या 1, 92 स्कोर), 4/10 आदि असाइन करना चाहिए। अब समस्या यह है कि यदि कोई टाई है, तो अगला स्कोर एक स्थिति छोड़ देता है और यदि एक स्थिति में 3 अंक हैं तो अगला स्कोर 2 पदों को छोड़ देता है। तो ऊपर दिए गए स्कोर निम्नानुसार रैंक किए जाएंगे;
92 - 1
84 - 2,
84 - 2,
84 - 2,
83 - 5,
65 - 6,
41 - 7,
38 - 8,
38 - 8 ,
37 - 10
ग्रेडिंग प्रणाली है कि पदों की संख्या (रैंक, यदि आप होगा) को बनाए रखा जाएगा, इसलिए हम 10 पदों के साथ इस वर्ग में पदों 3, 4, 5 के बाद से समाप्त हो गया और 9 किसी भी नहीं था की आवश्यकता है रहने वालों। (प्रत्येक नंबर को भरने का विकल्प हमें केवल 8 पदों देगा!)
क्या यह संभव है (मानव संभवतः संभव/PHP संभव) PHP का उपयोग करने के लिए इस तरह से स्कोर को रैंक करने के लिए संभव है कि यह संभावित संबंधों को संभाल सके एक अंक पर 4 अंक? धीरे-धीरे, मैं ऐसा करने के लिए एक समारोह के साथ नहीं आ सकता था। मुझे एक PHP फ़ंक्शन (या कुछ ... PHP) चाहिए जो एक सरणी लेगा और उपरोक्त रैंकिंग का उत्पादन करेगा।
किसी भी मदद की सराहना की जाएगी, हालांकि मुझे लगता है कि मैं बहुत ज्यादा पूछ रहा हूं। यदि यह किसी सरणी में किए बिना MySQL क्वेरी डेटा के साथ ऐसा करना संभव है, तो यह भी सहायक होगा!
टाई अंत में होने तक यह बहुत अच्छी तरह से काम करता है। उस स्थिति में अंतिम स्कोर (जो टाई) को सौंपी गई स्थिति स्कोर की कुल संख्या के बराबर नहीं होगी। उपर्युक्त आउटपुट में आप देखेंगे कि स्कोर 37 नंबर 10 पर स्थित है, जो कि सबसे कम स्कोर है और यह छात्रों की कुल संख्या होने के कारण हानिकारक है। हालांकि, हमारे पास 37 (सबसे कम स्कोर) पर टाई है और 38 नहीं, पिछले दो स्कोर 10 के बजाय स्थिति 9 को सौंपा जाएगा। मुझे लगता है कि एक सशर्त की आवश्यकता है जो जांचता है कि टाई में सबसे कम स्कोर शामिल है, मैं इस तरह के एक सशर्त – Bululu
जोड़ने की कोशिश कर रहे हैं मान लें कि हमारे पास निम्न सरणी है: '$ ग्रेड = सरणी (92, 84, 84, 84, 83, 65, 41, 38, 37,37); '' 37' दोनों में दिखाया गया है परिणाम '37 - 9', जो सही है क्योंकि पहले' 37' वास्तव में नौवीं स्थिति में स्थित है। निष्कर्ष में: जब टाई निम्नतम ग्रेड पर होती है, तो प्रत्येक निम्न ग्रेड के लिए रैंक निम्नतम ग्रेड की पहली घटना के रैंक के बराबर होता है। इस मामले में '9'। सही? – Anne
मुझे लगता है कि आपके कोड को समस्या को हल करना चाहिए जैसा कि यह है। तर्क यह सुनिश्चित कर रहा है कि अंतिम स्कोर परीक्षा के लिए बैठे छात्रों की संख्या के बराबर हो, कुछ हद तक त्रुटिपूर्ण है। यदि टाई कहीं भी होती है लेकिन अंत में, निम्नतम स्कोर छात्रों की कुल संख्या के बराबर होगा। यदि यह अंत में है जो नहीं हो सकता है, और IU tyou bec ause से सहमत है, तो दूसरा सबसे कम स्कोरर कहता है, 9 उदाहरण के रूप में, तो अगले स्कोरर को सही स्थिति मिलनी चाहिए SINCE के बाद कोई स्कोर नहीं है उस। इस बीच इस जवाब के लिए बहुत बहुत धन्यवाद, आप एक प्रतिभाशाली हैं! – Bululu