2011-11-27 15 views
5

मैं अगर दो सरणियों समान हैं जाँच करने के लिए एक तरह से तलाश कर रहा हूँ, उदाहरण के लिएPHP जांचें कि क्या सरणी समान हैं?

$a = array(
    '1' => 12, 
    '3' => 14, 
    '6' => 11 
); 
$b = array(
    '1' => 12, 
    '3' => 14, 
    '6' => 11 
); 

इन दो समान होगा, लेकिन अगर किसी एकल मान बदल गया था, यह गलत वापसी होगी, मैं जानता हूँ कि मैं लिख सकता है एक समारोह, लेकिन क्या कोई पहले से ही बनाया गया है?

+1

लेकिन अगर किसी एकल मान तो बदल दिया गया था कि वे समान नहीं होगा। यहां सवाल क्या है? –

+0

क्या आपने अभी भी '===' का उपयोग करने का प्रयास किया था? – animuson

उत्तर

12

आप उपयोग के

$a === $b // or $a == $b 

उदाहरण का उपयोग कर सकते हैं:

<?php 
$a = array(
    '1' => 12, 
    '3' => 14, 
    '6' => 11 
); 
$b = array(
    '1' => 12, 
    '3' => 14, 
    '6' => 11 
); 
echo ($a === $b) ? 'they\'re same' : 'they\'re different'; 

echo "\n"; 
$b['1'] = 11; 

echo ($a === $b) ? 'they\'re same' : 'they\'re different'; 

जो वापस आ जाएगी

they're same 
they're different 

demo

+0

यह उत्तर खोज से आने वाले लोगों के लिए भ्रामक है। 'array_diff'" समान सरणी "की जांच के लिए बहुत अच्छी तरह से काम नहीं करता है। यह भी एक आधार है कि चाबियाँ नहीं बदलेगी। मौजूदा मानों में से एक के साथ एक और कुंजी जोड़ना, array_diff के साथ काम नहीं करेगा, पहले सरणी में कोई मान जोड़ना या दूसरा सरणी अलग-अलग परिणाम देता है। –

+0

@ डस्टिन ग्राहम: क्या आप मुझे अपना मतलब बता सकते हैं? मैं इस –

+0

के साथ थोड़ा उलझन में हूं यदि कोई व्यक्ति यहां आने के लिए एक तरीका ढूंढ रहा है कि दो सरणी समान हैं, तो उत्तर (आपके) में 'array_diff()' का पहला सुझाव है जो भ्रामक हो सकता है, इसे आजमाएं: ' $ ए = सरणी ('x' => सत्य, 'y' => झूठी); $ बी = सरणी ('x' => सत्य, 'y' => सत्य, 'z' => झूठा); print_r (array_diff ($ a, $ b)); स्पष्ट रूप से वे समान नहीं हैं, लेकिन 'array_diff' कोई अंतर नहीं दिखाता है। –

21

तुम बसउपयोग कर सकते हैं 10 अगर ऑर्डर कोई फर्क नहीं पड़ता है, या $a === $b अगर ऑर्डर मायने रखता है।

उदाहरण के लिए:

$a = array(
    '1' => 12, 
    '3' => 14, 
    '6' => 11 
); 
$b = array(
    '1' => 12, 
    '3' => 14, 
    '6' => 11 
); 
$c = array(
    '3' => 14, 
    '1' => 12, 
    '6' => 11 
); 
$d = array(
    '1' => 11, 
    '3' => 14, 
    '6' => 11 
); 

$a == $b; // evaluates to true 
$a === $b; // evaluates to true 
$a == $c; // evaluates to true 
$a === $c; // evaluates to false 
$a == $d; // evaluates to false 
$a === $d; // evaluates to false 
संबंधित मुद्दे