2013-02-23 3 views
8

문자열에 색인을 지정하고 제거 할 수 있기를 원합니다.php : 문자열에서 특정 색인을 삭제 하시겠습니까?

"Hello World!!" 

내가 (안녕에 o) 4 인덱스를 제거하려면 :

나는 다음 있습니다. 여기에 최종 결과가 될 것입니다 : 내가 unset()을 시도했습니다

"Hell World!!" 

,하지만 그 일을하지 않았다. 나는 이것을하는 방법을 봤어. 그리고 그것은 모두가 말한 것이지만, 그것은 나를 위해 일하지 않았다. 어쩌면 나는 그것을 올바르게 사용하지 않았을 수도있다, 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

아마 배열에 문자열을 던지고 4 번째 키만 제거하면됩니다. – Kermit

+1

@AarolamaBluenk strings! = PHP의 배열 : –

+0

온라인 :'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

처럼 호출 할 수 있습니다 생각도 나를 도청 잠시 동안. 물론 자연스러운 해결책은 문자열 함수를 사용하거나 배열을 사용하는 것입니다.하지만 이것은 제 생각에 문자열 인덱스로 직접 작업하는 것보다 느립니다. 다음 스 니펫 문제는 메모리 문자열이 빈 replaced로만 대체되고 비교 또는 다른 것이 있으면 좋은 옵션이 아님을 의미합니다. 앞으로의 버전에서 우리는 알고있는 문자열 인덱스를 직접 제거하는 기능을 내장 할 것입니다.

$string = 'abcdefg'; 
$string[3] = ''; 
var_dump($string); 
echo $string; 
관련 문제