2013-02-21 45 views
8

द्वारा क्रमबद्ध बहुआयामी सरणीएं इसके लिए समान प्रश्न और उत्तर पोस्ट किए गए हैं, लेकिन उनमें से कोई भी मेरे सरणी की संरचना से काफी मेल नहीं खाता है, इसलिए अगर मुझे कुछ याद आती है तो क्षमा करें।उप सरणी कुंजी मान

Array ( 
[0] => Array ([meta_id] => 37850 [post_id] => 5548 [meta_key] => Item # [meta_value] => 66002) 
[1] => Array ([meta_id] => 37851 [post_id] => 5548 [meta_key] => Hex Size [meta_value] => .051") 
[2] => Array ([meta_id] => 37852 [post_id] => 5548 [meta_key] => Across Flats [meta_value] => 0.051) 
[3] => Array ([meta_id] => 37853 [post_id] => 5548 [meta_key] => Type [meta_value] => Hexagonal) 
[4] => Array ([meta_id] => 37854 [post_id] => 5548 [meta_key] => Shank [meta_value] => .315")) 

Array ( 
[0] => Array ([meta_id] => 37910 [post_id] => 5553 [meta_key] => Item # [meta_value] => 66008) 
[1] => Array ([meta_id] => 37911 [post_id] => 5553 [meta_key] => Hex Size [meta_value] => 1/8") 
[2] => Array ([meta_id] => 37912 [post_id] => 5553 [meta_key] => Across Flats [meta_value] => 0.127) 
[3] => Array ([meta_id] => 37913 [post_id] => 5553 [meta_key] => Type [meta_value] => Hexagonal) 
[4] => Array ([meta_id] => 37914 [post_id] => 5553 [meta_key] => Shank [meta_value] => .315")) 

Array ( 
[0] => Array ([meta_id] => 37862 [post_id] => 5549 [meta_key] => Item # [meta_value] => 66004) 
[1] => Array ([meta_id] => 37863 [post_id] => 5549 [meta_key] => Hex Size [meta_value] => 1/16") 
[2] => Array ([meta_id] => 37864 [post_id] => 5549 [meta_key] => Across Flats [meta_value] => 0.063) 
[3] => Array ([meta_id] => 37865 [post_id] => 5549 [meta_key] => Type [meta_value] => Hexagonal) 
[4] => Array ([meta_id] => 37866 [post_id] => 5549 [meta_key] => Shank [meta_value] => .315")) 

Array ( 
[0] => Array ([meta_id] => 37886 [post_id] => 5551 [meta_key] => Item # [meta_value] => 66006) 
[1] => Array ([meta_id] => 37887 [post_id] => 5551 [meta_key] => Hex Size [meta_value] => 3/32") 
[2] => Array ([meta_id] => 37888 [post_id] => 5551 [meta_key] => Across Flats [meta_value] => 0.095) 
[3] => Array ([meta_id] => 37889 [post_id] => 5551 [meta_key] => Type [meta_value] => Hexagonal) 
[4] => Array ([meta_id] => 37890 [post_id] => 5551 [meta_key] => Shank [meta_value] => .315")) 

मैं [meta_value] सरणी के आदेश से उन्हें सूचीबद्ध करने की जरूरत है: यह वर्डप्रेस wpdb वर्ग द्वारा उत्पन्न एक सरणी है। फिर मैं उस क्रम में उत्पादों की एक तालिका उत्पन्न करने के लिए सरणी का उपयोग करता हूं। मैं निम्नलिखित समारोह के साथ काम कर रहा है, लेकिन यह एक परिणाम है कि किसी भी मतलब नहीं है पैदा करता है:

function subval_sort($a,$subkey) { 
    foreach($a as $k=>$v) { 
     $b[$k] = strtolower($v[$subkey]); 
    } 
    asort($b); 
    foreach($b as $key=>$val) { 
     $c[] = $a[$key]; 
    } 
    return $c; 
} 
+0

इस प्रश्न में स्वयं ऐसा करने का एक तरीका है ... बस यह पोस्ट करें कि आप इस जानकारी को कैसे उत्पन्न कर रहे हैं .. – jondavidjohn

+0

क्या आप इन सभी सरणी को सॉर्ट करने से पहले मर्ज करना चाहते हैं, या आप केवल सॉर्ट करना चाहते हैं उन्हें "उनके उप-सरणी के अंदर"? – Passerby

उत्तर

20

उपयोग usort(), उदाहरण:

$items = [ 
    ['id' => 3, 'item' => 'pc'], 
    ['id' => 1, 'item' => 'mouse'], 
    ['id' => 2, 'item' => 'kb'], 
]; 

function compare_id($a, $b) { 
    if ($a['id'] == $b['id']) return 0; 
    return ($a['id'] < $b['id']) ? -1 : 1; 
} 

usort($items, 'compare_id'); 

var_dump($items);  

या का उपयोग करते हुए अज्ञात फ़ंक्शन

usort($items, function ($a, $b) { 
    if ($a['id'] == $b['id']) return 0; 
    return ($a['id'] < $b['id']) ? -1 : 1; 
}); 
+0

यह स्वीकार्य उत्तर होना चाहिए। यह आंख की झपकी में काम मिला! – Laci

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

  • कोई संबंधित समस्या नहीं^_^