2011-01-15 8 views
31

मैं पहले कभी नहीं आया हूं, लेकिन आप कैसे परीक्षण करेंगे कि तीन चर समान हैं या नहीं? निम्नलिखित, स्पष्ट रूप से काम नहीं करता है, लेकिन मैं एक सुंदर (और सही) जिस तरह से नहीं सोच सकते हैं निम्नलिखित लिखने के लिए:PHP: परीक्षण करना कि तीन चर बराबर हैं

if ($select_above_average === $select_average === $select_below_average) { }

उत्तर

49
if ((a == b) && (b == c)) { 
    ... they're all equal ... 
} 

transitive relation

+2

धन्यवाद! मुझे इसके बारे में एक अच्छा विकिपीडिया लेख भी मिला! – Matty

+5

'===' का उपयोग करें, नहीं '== '। PHP की ढीली समानता संक्रमणीय नहीं है! – Brilliand

+1

यह ध्यान दिया जाना चाहिए कि प्रत्येक तुलना के आसपास कोष्ठक * नहीं * आवश्यक हैं। –

8
if ($select_above_average === $select_average 
    && $select_average === $select_below_average) { } 
18
$values = array($select_above_average, $select_average, $select_below_average); 

if(count(array_unique($values)) === 1) { 
    // do stuff if all elements are the same 
} 

एक और तरीका यह करने के लिए होगा।

+9

योवा, 7-11 पर स्लर्पी प्राप्त करने के बजाय 500 मील की दूरी पर ड्राइविंग करने के बारे में बात करें, इसके बजाय ब्लॉक को 7-11 तक नीचे चलाएं। –

+1

लेकिन बहुत अक्षम। – Dogbert

+0

:) यही कारण है कि मैंने एक और तरीका कहा। पहले से दिए गए जवाब वाल का कारण बनें :)। मुझे आपकी टिप्पणी के बावजूद हंसना पड़ा। – PeeHaa

5

आप पहले से ही एडम लेकिन एक अच्छा माध्यम से आपका जवाब सही ढंग ऐसा करने के लिए याद करने के लिए है से, एक भी मान्यता आप () ब्रेसिज़ में लपेटकर किया जाना चाहिए के लिए याद करने के लिए करता है, तो अपने ही है एक सिंगल चेक कर रहे हैं तो आपके पास पहले से ही () कथन द्वारा प्रदान किए गए ब्रेसिज़ हैं।

उदाहरण:

अगर (ख एक ===)

और यदि आपकी कर कई तो

अगर (( ख एक === ) & & (ग === घ))

शराबी यदि आपको याद है कि ब्रेसिज़ के प्रत्येक सेट एक सत्यापन जाँच है, तो आप इस तरह लॉगिन कर सकते हैं:

अगर (((एक === बी) || (ग === घ)) & & (ई === च))

अगर बयान और कई अन्य तार्किक संचालन पदानुक्रम पर काम इतना है कि व्यक्ति की राशि चेक के भीतर चेक के माता-पिता की जांच पर असर पड़ता है।

अगर a === b या c === d में विफल रहता है तो e === f अब के रूप में कभी नहीं की जाँच की जाएगी ऊपर तीसरा उदाहरण ले, सीडी ब्रेसिज़ में इतना है कि वे वापस लौटे और चेक किया गया है लपेटा जाता है।

आशा है कि इससे आपको थोड़ा और मदद मिलेगी।

+1

पर मूल्यांकन करता है यह एक उपयोगी था और सहायक उदाहरण चीयर्स! –

1

मेरी एक अनूठी स्थिति थी जिसमें मुझे यह देखने की ज़रूरत थी कि तीन सरणी में वस्तुओं की मात्रा इस परिदृश्य की तरह ही थी।(मान लें कि खेतों, ऑपरेटरों और मूल्यों सभी सरणियों हैं)

$allfieldscount = array(count($fields), count($operators), count($values)); //store an array of the count of all the arrays. 

$same = array_count_values($allfieldscount);//returns an array by values in the array. We are looking to see only 1 item in the array with a value of 3. 

if(count($same) != 1){ 
    //Then it's not the same 
}else{ 
    //Then it's the same 
} 

इस रणनीति अलग सरणियों में क्षेत्रों में गिना जाता है और array_count_values ​​का उपयोग करके अगर वे:

यह है कि मैं क्या लेकर आए हैं सब कुछ वही हैं, फिर यह लौटने वाले सरणी की गिनती '1' होगी, अगर यह कुछ और है तो यह वही नहीं है। Php.net पर array_count_values ​​को और अधिक समझने के लिए देखें।