2012-05-14 17 views
30

संभव डुप्लिकेट में पाया जाता है:
Remove item from array if it exists in a 'disallowed words' arrayएक सरणी के तत्वों को निकालें अगर यह एक और

मैं एक गतिशील स्ट्रिंग है जो ग्राहकों को भेज देंगे है और मैं से अल्पविराम से परे टैग बनाना चाहते हैं यह:

$subject = "Warmly little in before cousin as sussex and an entire set Blessing it ladyship."; 
print_r($tags = explode(" ", strtolower($subject))); 

और फिर भी, मैं शब्दों के एक विशिष्ट समूह को हटाना चाहता हूं (जैसे निश्चित कला icles), लेकिन मैं अगर यह विस्फोट सरणी में है कुंजी और उस शब्द का मान को हटाना चाहते हैं:

$definite_articles = array('the','this','then','there','from','for','to','as','and','or','is','was','be','can','could','would','isn\'t','wasn\'t', 'until','should','give','has','have','are','some','it','in','if','so','of','on','at','an','who','what','when','where','why','we','been','maybe','further'); 

$definite_article सरणी में इन शब्दों में से एक $tags सरणी में हैं, तो कुंजी और का मान हटा वह शब्द और नई सरणी इन शब्दों को बाहर ले जाएगा। मेरे पास इस सरणी का उपयोग array_rand द्वारा किया जाएगा ताकि इसमें से चुने गए शब्दों का एक यादृच्छिक समूह हो। मैंने अपना परिणाम प्राप्त करने के लिए कई चीजों की कोशिश की है, लेकिन अभी तक कुछ भी नहीं। क्या कोई मुझे इसका हल ढूंढने में मदद कर सकता है?

+0

मैनुअल – GordonM

+1

मैनुअल में array_diff() देखें: array_ array() –

+0

सरणी-diff-key() और संदर्भ लिंक [http://php.net/manual/en/function.array-diff पर देखें) -key.php] – manish1706

उत्तर

46

आप array_diff लिए देख रहे हैं:

$subject = "Warmly little in before cousin as sussex..."; 
$tags = explode(" ", strtolower($subject)); 

$definite_articles = array('the','this','then','there','from','for','to','as'); 

$tags = array_diff($tags, $definite_articles); 
print_r($tags); 

See it in action

27

array_diff() के लिए आसान काम की तरह लगता है।

array array_diff (array $array1 , array $array2 [, array $... ])

array2 के खिलाफ array1 तुलना और अंतर देता है।

कौन सा मूल रूप से मतलब है कि यह array1 वापस आ जाएगी के बाद यह सभी मूल्यों जो array2 में मौजूद छीन लिया गया है।

+0

'array_diff()' मूल सरणी कुंजी [सरणी 1'] को बनाए रखेगा, जो इस कथन को सच बनाता है। आप इसे चाहते हैं या नहीं भी कर सकते हैं, लेकिन यह सिर्फ कुछ पता होना चाहिए। – Jason

+0

array_diff() सरणी कुंजी की मूल सरणी कुंजियों को बनाए रखेगा - बस इसे array_values ​​में लपेटें - यह नई सरणी कुंजी को रीसेट करेगा: उदाहरण: $ new_array = array_values ​​(array_diff ($ array1, $ array2)); – realmag777

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