दिलचस्प पोस्ट
वीबीए में एक श्रेणी को स्थानांतरित करें पॉ ऑपरेटर के साथ गणना त्रुटि फायरबसे पुश नोटिफिकेशन डीबी linq केस बयान कैसे जाँचने के लिए कि एक सरणी PHP का उपयोग कर खाली है? PHP में अधिकतम निष्पादन समय कैसे बढ़ाएं जावा में एक स्ट्रिंग को एक इनपुटस्ट्रीम रीडर में कैसे बदलूं? एकाधिक iPhone पुश नोटिफिकेशन + एपीएनएस + PHP + ट्यूटोरियल भेजा जा रहा है कैसे वर्तमान स्क्रीन संकल्प का पता लगा? ConstraintLayout और RelativeLayout के बीच अंतर जावा: पार्स जावा स्रोत कोड, निकालें तरीकों डीजेंगो टेम्प्लेट में एक गेटेट्रर () स्टाइल लुकअप करना अजगर इंडेंटेशन को ठीक कैसे करें कैश एंड्रॉइड कैसे साफ़ करें एचटीटीपी या एचटीटीपीएस का पता लगाने के बाद जावास्क्रिप्ट में HTTPS को मजबूर कर दें

दो फ़ील्ड मानों से PHP सॉर्ट सरणी

मेरे पास इस तरह एक सरणी है

 अर्रे (
  [0] => सरणी ("गंतव्य" => "सिडनी",
                "एयरलाइंस" => "एयरलाइन_1",
                "one_way_fare" => 100,
                "वापसी_फेयर => 300
        ),
  [2] => सरणी ("गंतव्य" => "सिडनी",
                "एयरलाइंस" => "एयरलाइन_2",
                "one_way_fare" => 150,
                "वापसी_फेयर => 350
        ),
  [3] => सरणी ("गंतव्य" => "सिडनी",
                "एयरलाइंस" => "एयरलाइन_3",
                "एक_वे_हेयर" => 180,
                "वापसी_फेयर => 380
        )
 )

मैं return_fare asc, one_way_fare asc से कैसे मान को सॉर्ट कर सकता हूं?

मैंने array_multisort () की कोशिश की लेकिन मुझे डेटा को मिश्रित करना समाप्त हो गया ..

एस्पोर्ट केवल एक आयामी सरणी के लिए काम करता है, मुझे दो मानों या अधिक के अनुसार क्रमबद्ध करने की ज़रूरत है, मैं इसे SQL में कैसे प्राप्त कर सकता हूं, field1 asc, field2 asc द्वारा क्रम में?

वेब के समाधान से एकत्रित समाधान "दो फ़ील्ड मानों से PHP सॉर्ट सरणी"

array_multisort() सही फ़ंक्शन है, आपको किसी तरह गड़बड़ करनी होगी:

 // Obtain a list of columns foreach ($data as $key => $row) { $return_fare[$key] = $row['return_fare']; $one_way_fare[$key] = $row['one_way_fare']; } // Sort the data with volume descending, edition ascending array_multisort($return_fare, SORT_ASC, $one_way_fare, SORT_ASC, $data); 

यदि आप array_multisort() लिए PHP के मैन्युअल पृष्ठ पर टिप्पणियों पर एक नज़र डालें, तो आपको एक बहुत ही उपयोगी array_orderby() फ़ंक्शन मिल सकता है जो आपको ऊपर से कम करने की अनुमति देता है:

 $sorted = array_orderby($data, 'return_fare', SORT_ASC, 'one_way_fare', SORT_ASC); 

Looping का उपयोग करें array_column() से बचने के लिए array_column() PHP 5.5.0 के रूप में):

 array_multisort(array_column($data, 'return_fare'), SORT_ASC, array_column($data, 'one_way_fare'), SORT_ASC, $data); 

array_multisort() अलावा, जो आपको पहले कॉलम-एरे बनाने की आवश्यकता है, वहाँ भी है usort() जो ऐसी चीज़ की आवश्यकता नहीं है

 usort($data, function($a, $b) { $rdiff = $a['return_fare'] - $b['return_fare']; if ($rdiff) return $rdiff; return a['one_way_fare'] - $b['one_way_fare']; }); // anonymous function requires PHP 5.3 - use "normal" function earlier 

या आप निम्न प्रकार का प्रयोग कर सकते हैं

 uasort($arr, function($a,$b){ $c = $a['return_fare'] - $b['return_fare']; $c .= $a['one_way_fare'] - $b['one_way_fare']; return $c; }); 

बेला

ओह, मैं अपना प्रश्न फिर से हल करने में सफल रहा ….

   
 फ़ंक्शन array_multi_sort ($ सरणी, $ on1, $ on2, $ order = SORT_ASC)
     {

         विदेशी मुद्रा ($ कुंजी $ $ के रूप में => $ मान) {
         $ one_way_fares [$ key] = $ मान [$ on2];
         $ वापसी_वर्क्स [$ कुंजी] = $ मान [$ on1];
         }

         array_multisort ($ return_fares, $ आदेश, $ one_way_fares, $ आदेश, $ सरणी);
     }

बात यह है कि मैं array_multisort पर अंतिम पैरामीटर $ सरणी ($ return_fares, $ order, $ one_way_fares, $ order, $ array) को याद नहीं किया; पहले!