2013-02-23 42 views
8

Tôi muốn có thể chỉ định một chỉ mục trong một chuỗi và xóa nó.php: Xóa chỉ mục cụ thể khỏi chuỗi?

tôi có như sau:

"Hello World!!" 

tôi muốn loại bỏ các chỉ số 4 (o trong Hello). Đây sẽ là kết quả cuối cùng:

"Hell World!!" 

Tôi đã thử unset() nhưng chưa hoạt động. Tôi đã Googled làm thế nào để làm điều này và đó là những gì mọi người nói, nhưng nó đã không làm việc cho tôi. Có lẽ tôi đã không sử dụng nó đúng, idk.

+3

Sử dụng 'substr'. Lấy vài charactes đầu tiên, lấy vài ký tự cuối cùng sau chỉ mục của bạn, sau đó ghép lại. – mario

+0

Tôi đã thử 'unset()', nhưng điều đó không hiệu quả. Tôi đã Googled làm thế nào để làm điều này và đó là những gì mọi người nói, nhưng nó đã không làm việc cho tôi. –

+0

str_split vào một mảng loại bỏ chỉ mục sau đó implode trở lại chuỗi. – defaultNINJA

Trả lời

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

Tôi có lẽ sẽ ném chuỗi vào một mảng và chỉ cần loại bỏ khóa thứ 4. – Kermit

+1

@AarolamaBluenk strings! = Mảng trong php :) –

+0

Trên dòng 3: Số nguyên '7' làm đối số thứ ba của' substr' không được yêu cầu để làm cho nó hoạt động. –

9

Đây là một cách tổng quát để giải quyết nó:

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

Về cơ bản, thay thế một phần của chuỗi trước từ chỉ số trở đi với một phần của chuỗi đó là liền kề.

Xem thêm: substr_replace()

Hoặc, chỉ cần:

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

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

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

cá nhân tôi thích làm việc với mảng.

(Xin lỗi về thiếu dấu ngoặc đang đặt này lên qua điện thoại của tôi)

+0

Sử dụng mảng không ngắn hơn hoặc không hiệu quả; bên cạnh đó, chức năng chuỗi không phải là khó mà họ? :) –

0

Tôi nghĩ rằng có thể tạo một hàm và gọi nó như thế này

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

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

này cụ thể php làm việc với chuỗi cũng nghe trộm tôi trong một thời gian. Tất nhiên giải pháp tự nhiên là sử dụng các hàm chuỗi hoặc sử dụng mảng nhưng điều này chậm hơn so với trực tiếp làm việc với chỉ mục chuỗi theo ý kiến ​​của tôi. Với các vấn đề đoạn mã sau là trong chuỗi bộ nhớ chỉ được thay thế bằng trống và nếu bạn có so sánh hoặc cái gì khác đây không phải là lựa chọn tốt. Có lẽ trong phiên bản tương lai, chúng ta sẽ được xây dựng trong hàm để loại bỏ các chỉ mục chuỗi trực tiếp mà ai biết được.

$string = 'abcdefg'; 
$string[3] = ''; 
var_dump($string); 
echo $string; 
Các vấn đề liên quan