2013-02-23 58 views
8

मैं एक स्ट्रिंग में एक इंडेक्स निर्दिष्ट करने और इसे हटाने में सक्षम होना चाहता हूं।php: स्ट्रिंग से विशिष्ट अनुक्रमणिका हटाएं?

"Hello World!!" 

मैं (नमस्ते में o) 4 सूचकांक निकालना चाहते हैं:

मैं निम्नलिखित है। यहाँ अंतिम परिणाम होगा:

"Hell World!!" 

मैं unset() की कोशिश की है, लेकिन यह काम नहीं किया है। मैंने यह किया है कि यह कैसे करें और यही वह है जो हर कोई कहता है, लेकिन यह मेरे लिए काम नहीं करता है। शायद मैं इसे सही, idk का उपयोग नहीं कर रहा था।

+3

'substr' का उपयोग करें। पहले कुछ गुण प्राप्त करें, अपने सूचकांक के बाद अंतिम कुछ अक्षर प्राप्त करें, फिर संयोजित करें। – mario

+0

मैंने 'unset() 'की कोशिश की है, लेकिन यह काम नहीं किया है। मैंने यह किया है कि यह कैसे करें और यही वह है जो हर कोई कहता है, लेकिन यह मेरे लिए काम नहीं करता है। –

+0

एक सरणी में str_split अनुक्रमणिका को हटा दें फिर स्ट्रिंग पर वापस इंपोड करें। – defaultNINJA

उत्तर

7
$str="Hello World"; 
$str1 = substr($str,0,4); 
$str2 = substr($str,5,7); 
echo $str1.$str2; 
+0

मैं शायद स्ट्रिंग को सरणी में फेंक दूंगा और केवल चौथी कुंजी को हटा दूंगा। – Kermit

+1

@AarolamaBluenk तार! = Php में arrays :) –

+0

लाइन 3 पर: 'substr' के तीसरे तर्क के रूप में पूर्णांक '7' को इसे काम करने की आवश्यकता नहीं है। –

9

यह इसे हल करने के लिए एक सामान्य तरीका है:

$str = "Hello world"; 
$i = 4; 
echo substr_replace($str, '', $i, 1); 

असल में, स्ट्रिंग के भाग से पहले सूचकांक के बाद से स्ट्रिंग है कि आसन्न है के भाग के साथ बदलें।

यह भी देखें: substr_replace()

या, बस:

substr($str, 0, $i) . substr($str, $i + 1) 
0
$myVar = "Hello World!!"; 

$myArray = str_split($myVar); 
array_splice($myArray, 4, 1); 

$myVar = implode("", $myArray); 

व्यक्तिगत मैं सरणियों के साथ काम करना पसंद है।

(क्षमा के बारे में कोड कोष्ठक की कमी यह मेरा फोन के माध्यम से डाल)

+0

सरणी का उपयोग न तो छोटा और न ही कुशल है; इसके अलावा, स्ट्रिंग फ़ंक्शंस वे कठिन नहीं हैं? :) –

0

मुझे लगता है कि एक समारोह बना सकते हैं और तार के साथ काम करने का यह php विशिष्ट यह इस

function rem_inx ($str, $ind) 
    { 
     return substr($str,0,$ind++). substr($str,$ind); 
    } 

    //use 
    echo rem_inx ("Hello World!!", 4);  
0

की तरह कॉल कर सकते हैं भी मुझे bugged कुछ समय के लिए। बेशक प्राकृतिक समाधान स्ट्रिंग फ़ंक्शंस का उपयोग करना या सरणी का उपयोग करना है, लेकिन यह मेरी राय में स्ट्रिंग इंडेक्स के साथ सीधे काम करने से धीमा है। निम्न स्निपेट समस्या के साथ यह है कि स्मृति स्ट्रिंग में केवल खाली के साथ प्रतिस्थापित किया गया है और यदि आपके पास तुलना है या कुछ और यह अच्छा विकल्प नहीं है। शायद भविष्य के संस्करण में हम सीधे स्ट्रिंग इंडेक्स को हटाने के लिए फ़ंक्शन में बनाए जाएंगे जो जानता है।

$string = 'abcdefg'; 
$string[3] = ''; 
var_dump($string); 
echo $string;