0

我想输出一个从函数返回的数组键。目前它是这样的:

$x = explode('/', 'my/path/home');
echo $x[1];

但是如何在没有变量赋值的情况下只输出一行?

我正在尝试这个,但它不起作用:

echo explode('/', 'my/path/home')[1];
4

3 回答 3

2

没试过,但这可能对你有帮助:

echo array_slice(explode('/', 'my/path/home'), 1, 1);

此外,如果字符串中没有斜杠,此代码会爆炸。

于 2013-07-01T20:48:29.667 回答
1

如果您必须在一行中执行此操作,IMO 最好使用list

list(, $x) = explode('/', $path);

这可以说比长篇大论更好

$x = implode('', array_slice(explode('/', $path), 1, 1));

很容易忘记你一开始应该做什么。

如果你不确定是否会有第二个元素,你可以防止出现问题

list(, $x) = array_pad(explode('/', $path), 2, null);

但是,对于真正的代码,我真的不推荐上述任何内容。必要时使用两班轮;它仍然比任何这些解决方案都更容易阅读。

于 2013-07-01T21:45:40.180 回答
0

如果您真的想要一个衬里,无论原因和您的 PHP 版本 < 5.4,您都可以为此创建一个函数:

function getPath($fullPath) {
   $x = explode('/', $fullPath);
   return $x[1];
}

//now the one-liner
echo getPath('my/path/home');
于 2013-07-01T21:37:44.930 回答