爆炸后,数组末尾的字符

时间:2013-09-11 00:12:56

标签: php string url explode

如果网址与$url=artists/denaro/类似,那么我会explode("/",$url)。它留下了一个角色,它有一个空格或者我试图匹配并删除它就像这样

$lastelement = end($named_request_data);
if($lastelement == " ")
{
  unset($lastelement);
  reset($named_request_data);
  return $named_request_data;

}

4 个答案:

答案 0 :(得分:1)

使用array_filter()代替。它将删除空项目。

$string = "artists/denaro/";
$array = array_filter(explode('/', $string));

$ array现在只包含'artists'和'denaro'。

输出:

array (size=2)
      0 => string 'artists' (length=7)
      1 => string 'denaro' (length=6)

答案 1 :(得分:0)

它在数组的最后一个索引处留下一个空字符串。

你应该做

$url = "artists/denaro/";
$url = trim($url, "/");
$arrayUrl = explode("/", $url);

答案 2 :(得分:0)

        $url='artists/denaro/';
        $exp = explode("/",$url);
        var_dump($exp); //1
        $exp = array_filter($exp);
        var_dump($exp);//2

输出是:

array(3) { [0]=> string(7) "artists" [1]=> string(6) "denaro" [2]=> string(0) "" } //1
array(2) { [0]=> string(7) "artists" [1]=> string(6) "denaro" } //2

http://php.net/manual/en/function.array-filter.php “如果没有提供回调,则输入的所有条目等于FALSE(参见转换为布尔值)将被删除。”

答案 3 :(得分:0)

您可以使用substr首先删除最后一个字符。

PHP小提琴:http://phpfiddle.org/main/code/bfi-yr6

您的原始代码:

$url='artists/denaro/';
$parts = explode("/",$url);
var_dump($parts);

输出:

array(3) { [0]=> string(7) "artists" [1]=> string(6) "denaro" [2]=> string(0) "" }

使用substr:

$url2 = substr($url, 0, -1);
$parts2 = explode("/",$url2);
var_dump($parts2);

输出:

array(2) { [0]=> string(7) "artists" [1]=> string(6) "denaro" }