2012-01-16 10 views
6

मैं PHP में एक if/else कथन करना चाहता हूं जो कि एक से अधिक बार मौजूद सरणी में किसी आइटम पर निर्भर करता है या नहीं। क्या आप इन_एरे में गिनती का उपयोग कर सकते हैं? की तरह कुछ करने के लिए:जांचें कि क्या सरणी सरणी में एक से अधिक बार मौजूद है?

if (count(in_array($itemno_array))) > 1 { EXECUTE CODE }

उत्तर

8

Let $ आइटम आइटम जिसकी आवृत्ति आप सरणी में के लिए जाँच कर रहे हैं, $ सरणी सरणी आप में खोज कर रहे हैं हो सकता है हो सकता है

समाधान 1:।

$array_count = array_count_values($array); 
if (array_key_exists($item, $array_count) && ($array_count["$item"] > 1)) 
{ 
    /* Execute code */ 
} 

array_count_values ​​() एक सरणी देता है मूल्यों के रूप में इनपुट में कुंजी के रूप में इनपुट सरणी के मान और उनके आवृत्ति का उपयोग (http://php.net/manual/en/function.array-count-values.php)

समाधान 2:

if (count(array_keys($array, $item)) > 1) 
{ 
    /* Execute code */ 
} 

यह http://www.php.net/manual/en/function.array-keys.php देखें - "यदि वैकल्पिक खोज_वॉल निर्दिष्ट है, तो केवल उस मान के लिए कुंजी लौटा दी जाती है"

+0

में खोज मान पैरामीटर के बारे में बात कर रहा है, आप उस उदाहरण को पूरा करना चाहेंगे जहां '$ item'' array array 'में मौजूद नहीं है। – salathe

+0

हाँ इसे इंगित करने के लिए धन्यवाद। मैं उस मामले को जोड़ दूंगा। – Ninja

+0

यह वही था जो मैं ढूंढ रहा था! बहुत बहुत धन्यवाद!! –

1

मैं आपके सवाल का गलत समझा हो सकता है लेकिन हो सकता है यह आप क्या neeed है:

if (count($in_array) > count(array_unique($in_array))) 
{ 
EXECUTE CODE 
} 
+1

यह गलत है। क्या होगा यदि वह वस्तु जो दोहराती है वह वह नहीं है जिसे वह ढूंढ रहा है? – Ninja

3

http://www.php.net/manual/en/function.array-keys.php

केवल एक bool रिटर्न in_array, ताकि आप इसे गिनती नहीं कर सकते हैं। array_keys हालांकि सरणी में किसी आइटम के लिए सभी कुंजियों की एक सरणी देता है, इसलिए उस परिणाम की लंबाई जांचना आपको यह बताएगा कि यह एक से अधिक बार मौजूद है या नहीं।

+0

यह सभी मामलों में काम नहीं करेगा। क्या होगा यदि वह वस्तु जो दोहराती है वह वह नहीं है जिसे वह ढूंढ रहा है? – Ninja

+0

@ निंजा, यह क्यों काम नहीं करेगा? – salathe

+0

क्षमा करें, मैंने गॉर्डन को क्या समझाया गलत समझा। मेरी गलती। यह महसूस किया कि वह array_keys फ़ंक्शन – Ninja

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