2012-03-11 15 views
6

मैं इस का उपयोग कर रहा साथ छँटाई अंतिम नाम के अनुसार क्रमबद्ध करने के लिए:php सरणी लहजे

usort($fb_friends['data'], "custom_sort");   
    function custom_sort($a,$b) { 
    return $a['last_name']>$b['last_name']; 
    } 

    foreach($fb_friends['data'] as $friend) { 
    echo '<br>'; 
    echo $friend['name']; 
    } 

लेकिन - जब अंतिम नाम उच्चारण, उदा है सिक्को, आर्न, आदि, ये नाम अंत में हैं। मैं इसे ठीक से कैसे क्रमबद्ध कर सकता हूं?

उत्तर

11

मल्टी-बाइट स्ट्रिंग फ़ंक्शंस का उपयोग करें। strcoll नामक एक फ़ंक्शन है जो आपकी आवश्यकताओं के अनुरूप लगता है।

और जानकारी:


संपादित करें: पीटर के काम-काज कोड जोड़ा,

setlocale(LC_COLLATE, 'sk_SK.utf8'); 

usort($fb_friends['data'], 'custom_sort'); 

function custom_sort($a, $b) { 
    return strcoll ($a['last_name'], $b['last_name']); 
} 

foreach ($fb_friends['data'] as $friend) { 
    echo '<br>'; 
    echo $friend['name']; 
} 
+0

नीचे धन्यवाद! यह मेरे लिए काम करता है: setlocale (LC_COLLATE, 'sk_SK.utf8'); usort ($ fb_friends ['data'], "custom_sort"); फ़ंक्शन custom_sort ($ a, $ b) { वापसी स्ट्रोक ($ a ['last_name'], $ b ['last_name']); } foreach ($ fb_friends ['data'] $ दोस्त के रूप में) { गूंज '
'; गूंज $ दोस्त ['नाम']; } – peter

+0

क्या होगा यदि तार एकाधिक कॉलम सरणी का हिस्सा हैं और हम एकाधिक कॉलम को सॉर्ट करना चाहते हैं? – Pierre

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