2010-08-22 16 views
7

एक दूसरे के साथ 2 सरणी की तुलना कैसे करें?
उदाहरण के लिए मेरे पास array("a", "b", "c") और array("a", "c", "b") है जब इसकी तुलना की जाती है तो यह सच हो जाएगा। लेकिन अगर उनमें से एक में पत्र नहीं मिला तो यह झूठी वापसी करेगा। आदेश महत्वपूर्ण नहीं है। asort() उपयोग करें यदि आप चाबियाँ बनाए रखना चाहते हैंPHP सरणी तुलना

sort($array1); 
sort($array2); 
// now you can compare as usual 
if ($array1 == $array2) ... 

या:

+0

यह उतना ही आसान $ array1 कुछ के रूप में अगर (क्रमानुसार (तरह()) == serialize (प्रकार ($ array2) हो सकता है) –

+3

@Alec: 'sort' करता है सरणी वापस नहीं। – soulmerge

+0

@soulmerge my bad ... –

उत्तर

18

आप तुलना करने से पहले उसी क्रम में दोनों सरणियों की सामग्री लाने की जरूरत है।

-3

आप उपयोग कर सकते हैं:

if (empty(array_diff($array1, $array2)) { 
    // do something 
} 
+1

'खाली' केवल चर पर काम करता है। – soulmerge

+3

यह वैसे भी काम नहीं करेगा, array_diff केवल सरणी 1 से अनुपलब्ध एरे 1 से इकाइयों को लौटाता है। आपको 'array_diff' $ array2, $ array1) 'पूर्णता के लिए। –

+0

@soulmerge, अब कम से कम PHP 5.5.0 के बाद अभिव्यक्तियों पर 'खाली' काम करता है। – Jocelyn