How does PHP keep track of order in an associative array? -


एक अनुक्रमित सरणी पर एक नया मान डालते समय

  $ array [] = 'नया मूल्य ';   

PHP दस्तावेज़ीकरण बताता है कि इसे [MAX_INDEX + 1] की स्थिति में कैसे जोड़ा जाता है।

एक साहचर्य सरणी पर एक नया मान धक्का करते समय

  $ सरणी ['कुंजी'] = 'नया मान';   

यह एक ही काम करता है, लेकिन मुझे यह पुष्टि करने के लिए दस्तावेज में कोई स्पष्टीकरण नहीं मिलता है कि यह कैसे या क्यों ऐसा करता है। यह आदेश मेरे कार्यान्वयन में सुसंगत लगता है, लेकिन मुझे यह सुनिश्चित करने के लिए कैसे पता चलेगा कि आदेश समान रहेगा? क्या किसी को पता है कि बैक-एंड पर यह कैसे लागू करता है?

आपको कुछ अंतर्दृष्टि दे सकता है।

ऐसा लगता है कि PHP सरणियों को आवश्यक रूप से हैश तालिकाएं हैं, इसलिए सरणी का क्रम उसी तक रहेगा जब तक आप उसे पुन: क्रमबद्ध नहीं करेंगे (जैसे सरणी को क्रमबद्ध करके)।

संपादित करें: < / Strong> ऐसा प्रतीत होता है कि यह डाउनवॉट हो रहा है, मुझे स्पष्ट रूप से नीचे दिए गए टिप्पणी में जुड़े स्रोतों को शामिल करने की इजाजत है ...

  • "PHP एसोसिएटिव एरेज़ वास्तव में कार्यान्वयन इसके अलावा स्रोत से: "PHP सरणी एक जंजीर हैश तालिका है (ओ (सी) और ओ (एन) कुंजी टक्कर पर लुकअप) जो कि हैशटables का", से

  • यह एक ही हैश कुंजी स्थान में दो प्रकार के फिट करने के लिए 2 अलग हैशिंग एल्गोरिदम का उपयोग करता है। "

  • " सब कुछ एक हॅशटेबल है "

Comments