मैं कुछ करने के लिए सक्षम होना चाहते हैं में इस्तेमाल नहीं सभी पत्र प्राप्त करें यह पसंद है।एक स्ट्रिंग
मैं एक foreach
और पात्रों की सरणियों के साथ आसानी से कर सकता है, लेकिन मैं सोच अगर कोई एक और अधिक सुरुचिपूर्ण समाधान था।
मैं कुछ करने के लिए सक्षम होना चाहते हैं में इस्तेमाल नहीं सभी पत्र प्राप्त करें यह पसंद है।एक स्ट्रिंग
मैं एक foreach
और पात्रों की सरणियों के साथ आसानी से कर सकता है, लेकिन मैं सोच अगर कोई एक और अधिक सुरुचिपूर्ण समाधान था।
यहां मैं क्या आया हूं।
function findNot($str){
return array_diff(range('a','z'), array_unique(str_split(strtolower($str))));
}
धन्यवाद, यह काम करता है! – diracdeltafunk
कोई समस्या नहीं है। मैं खुशी से मदद कर सकता है। :-) –
ईश्वर, मेरी इच्छा है कि मैं दो उत्तरों को स्वीकार कर सकूं – diracdeltafunk
कैसे के बारे में इस
$str="abc";
var_dump(findNot($str));
function findNot($string)
{
$letters = range('a', 'z');
$presents = array_map(function($i) { return chr($i); }, array_keys(array_filter(count_chars($string))));
return array_diff($letters, $presents);
}
पुनश्च: implode
परिणाम आप वर्ण की एक स्ट्रिंग, नहीं सरणी
पी पी एस की जरूरत है: यकीन नहीं करता है, तो यह एक "और अधिक सुरुचिपूर्ण" समाधान :-)
हैPPPS: एक और समाधान मैं के बारे में सोच सकता है
$str="abc";
var_dump(findNot($str));
function findNot($string)
{
$letters = range('a', 'z');
$presents = str_split(count_chars($string, 4));
return array_intersect($letters, $presents);
}
जब phptester पर परीक्षण में। नेट, मुझे यह त्रुटि मिलती है: 'पार्स त्रुटि: सिंटैक्स त्रुटि, अप्रत्याशित T_FUNCTION, उम्मीद है') '/home/jabouzic/public_html/phptester.net/txt/c6e64dbae6ae8ca4d0cfe6639f624fb9-67.176.58.205_1.php5 लाइन 8' – diracdeltafunk
@ Ben7005 पर : ऐसा इसलिए है क्योंकि अनाम कार्य केवल PHP 5.3+ में काम करते हैं। कई ऑनलाइन PHP परीक्षक 5.3 का समर्थन नहीं करते हैं। –
@ Ben7005: क्योंकि यह php5.3 सुविधाओं का उपयोग करता है। वैसे भी, एक छोटा जोड़ा गया, जो पुराने संस्करणों के साथ काम करेगा – zerkms
Zerk के solutio है एन अच्छा है। मैं इस तरह के उदाहरण के साथ आया, सुरुचिपूर्ण के रूप में नहीं।
<?php
$alphabet = 'abcdefghijklmnopqrstuvwxyz';
$alphabet = preg_split('//', $alphabet, -1, PREG_SPLIT_NO_EMPTY);
$str="abc";
var_dump(findNot($str)); //will echo "defghijklomnopqrstuvwxyz"
$str2="happy birthday";
var_dump(findNot($str2)); //will echo "cfgjklmnoqsuvwxz"
function findNot($str)
{
global $alphabet;
$str = str_replace(' ', '', $str);
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
$chars = array_unique($chars);
sort($chars);
$diff = array_diff($alphabet, $chars);
return $diff;
}
आप कुछ इस तरह कर सकता है:
$text = 'abcdefghijklmnop';
$search = array('a','b','c');
$result = str_replace($search, '', $text);
ग्रेट विचार बीटीडब्ल्यू - वर्णमाला में स्ट्रिंग के सभी वर्णों को प्रतिस्थापित करने के लिए – zerkms
हाँ, मैं सहमत हूं। बिल्कुल वही नहीं जो मैं खोज रहा हूं, मुझे टेक्स्ट को एन सर में परिवर्तित करना होगा (मुझे पता है कि यह एक अंतर्निहित फ़ंक्शन है ...) – diracdeltafunk
स्ट्रिंग को कन्वर्ट करने के लिए आप 'str_split' (और' array_unique') का उपयोग कर सकते हैं एक सरणी, और 'इम्प्लोड (' ', रेंज (' ए ',' जेड '))' वर्णमाला बनाने के लिए :) –
"जन्मदिन मुबारक" does not एक "ई" है यह :-P –
@Rocket सच ... – diracdeltafunk