2010-05-18 18 views
9

मैं उत्पादोंछँटाई सरणी

$products = array_count_values($products); 

की एक सरणी अब मैं एक सरणी जहां $ प्रमुख उत्पाद संख्या और $ मूल्य कितने बार मैं सरणी में इस तरह के एक उत्पाद है है है है। मैं इस नए सरणी को सॉर्ट करना चाहता हूं कि कम से कम "डुप्लिकेट" वाले उत्पाद हैं, लेकिन मैं कभी भी उपयोग करता हूं (rsort, krsort, ..) मैं उत्पाद संख्या (कुंजी) खो देता हूं।

कोई सुझाव?

धन्यवाद।

उत्तर

7

rsort() (और कार्यों के परिवार) के विकल्प के रूप में arsort() पर एक नज़र डालें।

आम तौर पर, php.net पर 'Sorting arrays' पृष्ठ आपके लिए उपयोगी हो सकता है - यह PHP के सरणी सॉर्टिंग फ़ंक्शंस की तुलना उनके अनुसार क्रमबद्ध करता है, किस दिशा में वे क्रमबद्ध करते हैं, और सॉर्ट करते समय वे चाबियाँ बनाए रखते हैं या नहीं।


मन आप, पूरा होने के लिए:

'द्वारा जा रहे हैं अब मैं एक सरणी जहां $ प्रमुख उत्पाद संख्या और $ मूल्य है है कितनी बार मैं सरणी में इस तरह के एक उत्पाद है । मैं इस नए सरणी को सॉर्ट करना चाहता हूं कि कम से कम "डुप्लिकेट" वाले उत्पाद 'पर हैं, तो शायद आप asort() (लटकन sort()) चाहते हैं।


आपकी टिप्पणी उदाहरण के लिए, का उपयोग कर asort():

$arr = array(
    1 => 3, 
    2 => 2, 
    5 => 3, 
    9 => 1 
); 
asort($arr); 
print_r($arr); 

पैदावार:

Array 
(
    [9] => 1 
    [2] => 2 
    [1] => 3 
    [5] => 3 
) 
+0

हाय thanx त्वरित जवाब के लिए मैं arsort (जाँच कर ली है, लेकिन आवश्यक परिणाम किसी भी वापस नहीं - प्रकार आरोही (निम्न से उच्च)

शायद कोशिश

dsort सुझाव ?? – umermalik

+0

@umermalik: बस यह सुनिश्चित करना कि मैं समझ रहा हूं कि आप क्या कह रहे हैं: आपको 'rsort()' (कुंजी को छोड़कर) के साथ सही परिणाम मिलता है, लेकिन 'arsort()' के साथ नहीं? – pinkgothic

+3

'arsort()' उच्चतम * से * सबसे कम * प्रकार के प्रकार, लेकिन ओपी * सबसे कम * से * उच्चतम * चाहता है। इसलिए 'asort()' उपयोग करने के लिए उचित कार्य है। –

3

आप उपयोग करना चाहते हैं asort():

यह फ़ंक्शन एक सरणी प्रकार करता है जैसे कि सरणी सूचकांक सरणी तत्व के साथ उनके सहसंबंध को बनाए रखते हैं। इसका उपयोग मुख्य रूप से सहयोगी सरणी को सॉर्ट करते समय किया जाता है जहां वास्तविक तत्व ऑर्डर महत्वपूर्ण होता है।


rsort() वैसे भी पहली जगह से गलत था (और इसलिए किसी अन्य छँटाई कार्यों होती है r (रिवर्स उस में के लिए)), के रूप में यह करने के लिए उच्चतम से सरणी सॉर्ट होगा सबसे कमन्यूनतम से

asort() प्रकार उच्चतम रहे हैं:

<?php 
$array = array('f'=>1, 'a'=>2, 'c'=>5); 
asort($array); 
print_r($array); 

देता

Array 
(
    [f] => 1 
    [a] => 2 
    [c] => 5 
) 

नोट: इन कार्यों सरणियों सॉर्ट यथा-स्थान। वे एक क्रमबद्ध सरणी वापस नहीं करते हैं। वापसी मान है:

(..) TRUE सफलता पर या FALSE विफलता पर।

+0

+1 एक सुंदर निफ्टी के लिए, 'asort() ', साथ ही चेतावनी के पूर्ण स्पष्टीकरण। – pinkgothic

0

आपको asort() PHP फ़ंक्शन का उपयोग करना चाहिए।

-1

बस एक विचार; asort - (घटते क्रम में) उतरते)

संबंधित मुद्दे