2012-05-16 11 views
5

मैं PHP के लिए अपेक्षाकृत नया हूं और उपयोग करने के लिए सही डेटा संरचना का पता लगाने में कठिन समय लगा रहा हूं। मान लीजिए कि मेरे पास equals() और hashCode() के साथ उचित रूप से लागू कक्षा FooBar है। PHP में किस तरह का संग्रह (यदि कोई भी है) जो कि जावा के हैशसेट जैसा दिखता है? मुझे डुप्लीकेट के बिना वस्तुओं का संग्रह चाहिए। किसी ने सरणी और फ़ंक्शन array_key_exists का उपयोग करने का सुझाव दिया है, लेकिन मैं बस सोच रहा था कि ऐसा करने का कोई और तरीका है या नहीं?जावा के हैशसेट PHP में

+0

Arrays जाने का रास्ता होगा। डुप्लीकेट के बिना सरणी निकालने के लिए आप PHP के array_unique फ़ंक्शन का उपयोग कर सकते हैं, या डालने से पहले array_key_exists का उपयोग कर सकते हैं। –

उत्तर

3

रिलीज 5.2 Php SplObjectStorage प्रदान करता है से शुरू करते हुए कि जावा के सेट कार्यक्षमताओं प्रदान करता है:

  • परवाह विशिष्टता के बारे में (एक ही वस्तु दो बार नहीं जोड़ा जा सकता) संग्रह के माध्यम से पुनरावृति करने के लिए
  • आसान
  • उपयोग

    के उदाहरण के लिए संग्रह में एक वस्तु के अस्तित्व की जाँच करने के लिए आसान

चेक

2

मानक PHP लाइब्रेरी (एसपीएल) द्वारा प्रदान की गई PHP प्रोग्रामिंग भाषा में कुछ डेटा संरचनाएं उपलब्ध हैं। हालांकि जावा संग्रह फ्रेमवर्क कार्यान्वयन की तुलना में वे कुछ भी नहीं हैं, कभी-कभी वे सरणी की तुलना में अधिक उन्नत कार्यक्षमता प्रदान करके बहुत उपयोगी हो सकते हैं। आप उपलब्ध डेटा संरचनाओं here के दस्तावेज़ीकरण पा सकते हैं।

PHP में सबसे हैशसेट जैसी डेटा संरचना SplObjectStorage होगी।

प्रलेखन से:

SplObjectStorage वर्ग डेटा, एक वस्तु सेट की अनदेखी करके, आंकड़ों के वस्तुओं से एक नक्शा प्रदान करता है या। वस्तुओं का विशिष्ट रूप से पहचान करने की आवश्यकता सहित कई मामलों में यह दोहरा उद्देश्य उपयोगी हो सकता है। PHP में

वस्तुओं equals() और hashCode() तरीकों को लागू नहीं करते। वस्तुओं की विशिष्टता spl_object_hash() फ़ंक्शन से लौटाए गए मान से निर्धारित होती है। SplObjectStorage कक्षा द्वारा समान मूल्यों की पहचान करने के लिए समान मूल्य का उपयोग किया जाता है। SplObjectStorage::getHash($object) विधि का उपयोग SplObjectStorage संग्रह में निहित किसी ऑब्जेक्ट के पहचानकर्ता को पुनर्प्राप्त करने के लिए किया जा सकता है।

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