मेरे पास संख्याओं की एक अनारॉर्डेड सरणी है:
$ AR1 = [101,4,320, 1,2,3,45,46];
और मैं उस सरणी में संख्याओं का सबसे लंबा क्रम निकालना चाहता हूं और उन्हें दूसरी सरणी में डालना चाहता हूं? मैंने usort के साथ कोशिश की है और मुझे यह मिलता है:
Array ([0] = & gt; 1 [1] = & gt; 2 [2] = & gt; 3 [3] = & gt; 4 [4] = & gt; 45 [5] = & gt; 46 [6] = & gt; 101 [7] => 320 [8] => 321 [9] = & gt; 323)
लेकिन सबसे लंबे समय तक अनुक्रम कैसे निकालना है (इस मामले में चुड़ैल 1,2,3,4 है) और एक अन्य सरणी में डाल दिया?
अद्यतन करें: यहां एक कोड है:
फ़ंक्शन उप ($ a, $ b) {if ($ a == $ b) {return 0; } वापसी ($ a & lt; $ b)? -1: 1; } $ AR1 = ["101", "4", "320", "321", "323", "1", "3", "2", "45", "46"]; $ Ar2 = []; usort ($ AR1, "उप"); print_r ($ AR1);
तो मैं सरणी में सबसे लंबे अनुक्रम के साथ $ ar2 को आबाद करना चाहता हूं ...
मुझे मिल गया:
$ ar1 = [101,4,320,1,2,3,45,46,47]; प्रकार ($ AR1); $ पहले = $ एआर 1 [0]; // असाइन करें सबसे पहले (सबसे कम) संख्या $ i = 0; $ Ar2 = सरणी (); // इस सरणी में निरंतर संख्याओं के सभी सरणी शामिल होंगे foreach ($ v $ $ v) {if ($ v- $ first == 1) {$ ar2 [$ i] [] = $ v; } और {$ i ++; $ एआर 2 [$ i] = सरणी ($ वी); // अंतर & gt; 1, हम एक और सरणी सेट करते हैं} $ first = $ v; } // अब हम सबसे लंबे सरणी $ अधिकतम = 0 की तलाश करते हैं; $ सबसे लंबे = सरणी (); विदेशी मुद्रा ($ AR2 = $ k = & gt; $ AR) {$ c = गिनती ($ एआर); अगर ($ c & lt; $ अधिकतम) {अनसेट ($ AR2 [$ k]); // यदि यह सबसे लंबे समय तक नहीं है, तो हम उसे त्यागते हैं} और {$ अधिकतम = $ c; $ सबसे लंबे समय तक = $ एआर; }} गूंज "& lt; पूर्व & gt;"; print_r ($ सबसे लंबे समय तक); गूंज "& lt; / पूर्व & gt;";
& Gt; 4)
कॉपी, पेस्ट, रन, आनंद लें!
No comments:
Post a Comment