2012-04-03 26 views
22

संभव डुप्लिकेट:
how to sort a multidemensional array by an inner key
How to sort an array of arrays in php?PHP फ़ील्ड द्वारा क्रमबद्ध सरणी?

मैं की तरह एक सरणी कैसे सॉर्ट कर सकते हैं: $array[$i]['title'];

सरणी संरचना हो सकता है जैसे:

array[0](
'id' => 321, 
'title' => 'Some Title', 
'slug' => 'some-title', 
'author' => 'Some Author', 
'author_slug' => 'some-author'); 

array[1](
'id' => 123, 
'title' => 'Another Title', 
'slug' => 'another-title', 
'author' => 'Another Author', 
'author_slug' => 'another-author'); 

तो डेटा एएससी आदेश में शीर्षक फ़ील्ड के आधार पर प्रदर्शित किया गया है?

+0

माइकल: टिम सिर्फ सहायक था। पहले खोजना एक शर्त है, और हमें प्रश्नकर्ताओं का _lot_ मिलता है जो पहले खोज/प्रयास नहीं करते हैं। – halfer

उत्तर

68

usort का उपयोग करें जो इस उद्देश्य के लिए स्पष्ट रूप से बनाया गया है।

function cmp($a, $b) 
{ 
    return strcmp($a["title"], $b["title"]); 
} 

usort($array, "cmp"); 
+11

आप इस प्रकार को रिवर्स करने के लिए -1 से गुणा कर सकते हैं, बस ऐसा करने के लिए किसी को भी एक एफवाईआई। –

+14

PHP 5.3 प्रारंभ करना आप अज्ञात फ़ंक्शंस का उपयोग कर सकते हैं, जो उपयोगी है, खासकर यदि आप किसी नामस्थान में कक्षा के अंदर हैं: 'usort ($ domain_array, function ($ a, $ b) { वापसी strcmp ($ a [" नाम "], $ बी [" नाम "]); }); ' –

+1

बस @GabiLee पर थोड़ा सा जोड़ने के लिए, यदि आप खोज क्षेत्र को कुछ चर के आधार पर गतिशील होना चाहते हैं, तो आप इसे पहले से सेट कर चुके हैं, इसे आजमाएं: usort ($ domain_array, function ($ a, $ b) उपयोग करें ($ सर्चफिल्ड) {वापसी strcmp ($ a [$ searchField], $ b [$ searchField]);}); यह उदाहरण के लिए एक वेब पेज पर उपयोगी हो सकता है जहां उपयोगकर्ता सॉर्ट करने के लिए फ़ील्ड चुन सकता है। – stealthysnacks

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