2013-02-23 8 views
8

Voglio essere in grado di specificare un indice in una stringa e rimuoverlo.php: cancella l'indice specifico dalla stringa?

Ho il seguente:

"Hello World!!" 

voglio togliere il quarto indice (o in Ciao). Qui sarebbe il risultato finale:

"Hell World!!" 

Ho provato unset(), ma che non ha funzionato. Ho cercato su Google come farlo ed è quello che dicono tutti, ma non ha funzionato per me. Forse non lo stavo usando bene, idk.

+3

Utilizzare 'substr'. Ottieni i primi caratteri, ottieni gli ultimi caratteri dopo il tuo indice, quindi concatena. – mario

+0

Ho provato 'unset()', ma non ha funzionato. Ho cercato su Google come farlo ed è quello che dicono tutti, ma non ha funzionato per me. –

+0

str_split in un array rimuovere l'indice poi implodono torna alla stringa. – defaultNINJA

risposta

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

Io probabilmente gettare la stringa in un array e basta rimuovere la chiave 4 °. stringhe – Kermit

+1

@AarolamaBluenk = array in php :) –

+0

sulla linea 3: Il numero intero '7' come terzo argomento di' substr' non è tenuto a farlo funzionare. –

9

Questo è un modo generico per risolverlo:

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

Fondamentalmente, sostituire la parte della stringa prima dall'indice poi con la parte della stringa che è adiacente.

Consulta anche: substr_replace()

Oppure, semplicemente:

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

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

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

personali mi piace trattare con gli array.

(Ci scusiamo per la mancanza di parentesi di codice mettere questo in su tramite il mio telefono)

+0

L'utilizzo degli array non è né più breve né efficiente; inoltre, le funzioni di stringa non sono così difficili? :) –

0

Penso in grado di creare una funzione e chiamare in questo modo

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

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

Questa php specifico di lavorare con le stringhe anche mi spiati per un po. Ovviamente la soluzione naturale è utilizzare le funzioni di stringa o utilizzare gli array, ma a mio avviso questo è più lento del lavorare direttamente con l'indice di stringa. Con il seguente problema è che in frammento di stringa di memoria viene sostituita solo con il vuoto e se si dispone di confronto o qualcos'altro questo non è buona opzione. Forse nella versione futura avremo la funzione incorporata per rimuovere direttamente gli indici di stringhe, chi lo sa.

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