2014-12-04 33 views
1

比方說,我有一個字符串,如:卸下一切

$my_string = 'hello_world-my_name_is-holl'; 

我的目標是通過一個函數來運行它,並結了:

'hello_world-my_name_is' 

我想擺脫最後的連字符實例後的所有內容。可以有兩個以上。我的想法是嘗試這樣的事情:

  $arr = explode("-", $my_string); 
      $arr = array_pop($arr); 
      $new_name = implode('', $arr); 

但這似乎並不奏效。什麼是實現我所需要的簡短方法?

+1

http://php.net/manual/en/function.strrchr.php – sinisake 2014-12-04 21:21:15

+0

'$ arr [0];'賓果 – 2014-12-04 21:21:34

+0

請閱讀doc.http://php.net/manual/en/function。 array-pop.php你應該在第二行刪除'$ arr ='。多數民衆贊成它:) – Toumash 2014-12-04 21:22:47

回答

2

之所以你的代碼不工作是雙重的:

第一關,array_pop()修改傳遞的數組PLUS返回它彈出。這意味着你在這裏做的是將「holl」(一個字符串)重新分配給你的$arr變量,因此它不再是一個數組。這就是爲什麼下面的內爆函數失敗。第二個參數需要是一個數組,而不是一個字符串。

其次,當將數組放回到一個字符串中時,您會希望使用連字符作爲膠水。所以,以下應該工作。

$my_string = 'hello_world-my_name_is-holl'; 

$arr = explode("-", $my_string); 
$arr2 = array_pop($arr); 
$new_name = implode('-', $arr); 

echo $new_name; 

正如你可以看到,我分配彈出客「霍爾」到一個新的變量(如果你需要的話),但隨後被引爆的原始的,但修改後的數組$arr

+0

這兩件事我都不明白。我已經在我的代碼中應用了它,它的作用就像一個魅力。謝謝! – holl 2014-12-04 22:02:59