2011-01-19 11 views
47

जब कोई सरणी foreach पर पास की जाती है तो आउटपुट ऑर्डर इनपुट के समान होने की गारंटी है? मुझे कुछ भाषाओं में पता है कि आउटपुट ऑर्डर की गारंटी नहीं है क्योंकि प्रत्येक तत्व को एक ही समय में संसाधित किया जाता है।php में सरणी क्रम में पुनरावृत्ति की गारंटी दी गई है?

उदाहरण के लिए, मैं फ़ाइल को लिखने के लिए foreach पर सॉर्टेड सरणी पास कर रहा हूं। मैं यह सुनिश्चित करना चाहता हूं कि सरणी आउटपुट फ़ाइल में सॉर्ट की जाएगी।

+3

* (संदर्भ) * http://php.net/manual/en/control-structures.foreach.php ऊपर – Gordon

+0

जवाब है, लेकिन मामले में array_multisort() पर एक नजर है क्या तुमने कभी सरणी सॉर्ट करने के लिए की जरूरत है फोरैच लूप करने से पहले: http://php.net/manual/en/function.array-multisort.php – o1iver

+2

मैं php 'foreach' दस्तावेज़ पढ़ने के बाद एक ही प्रश्न के साथ आया था। यह स्पष्टता नहीं बताता है कि आदेश बनी रहेगी। मैं उदाहरणों और न ही टिप्पणियों के बारे में बात नहीं कर रहा हूं। एकमात्र संदर्भ वर्तमान तत्व और अगले तत्व के बारे में बात करना 'रीसेट()' करना है। – Sebastian

उत्तर

30

हां ... आप जो भी आदेश देने के लिए देंगे, वह उसी आदेश में पुन: सक्रिय होगा। और आपके मामले में array will be sorted in the output file.

+1

+1 - मुझे इसे मारो! – Fenton

2

हां - आइटम उसी क्रम में आउटपुट होंगे जो वे सरणी के भीतर हैं।

8

यह सही है, foreach इनपुट सरणी के समान क्रम में आउटपुट होगा।

12

प्रासंगिक संदर्भ foreach या पहले उल्लेख किए गए अनुसार क्रमबद्ध नहीं हो सकता है, लेकिन इसके बजाय सरणी का।

Language reference — Arrays का कहना है:

PHP में एक सरणी वास्तव में एक आदेश दिया मानचित्र है।

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