2013-02-23 26 views
8

文字列にインデックスを指定して削除できるようにします。php:文字列から特定のインデックスを削除しますか?

私は次があります。

"Hello World!!" 

私は第四インデックス(ハローでo)を削除したいです。ここで最終的な結果のようになります。

"Hell World!!" 

私はunset()を試してみたが、それは働いていません。私はこれを行う方法をgoogled、それは誰もが言うが、それは私のために働いていない。たぶん、私はそれを正しく使用していない、idk。

+3

'substr'を使用してください。最初のいくつかの文字を取得し、索引の後ろの最後の文字を取得して連結します。 – mario

+0

'unset()'を試しましたが、うまくいきませんでした。私はこれを行う方法をgoogled、それは誰もが言うが、それは私のために働いていない。 –

+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

3行目: 'substr'の3番目の引数として整数' 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; 
関連する問題