在PHP中,如何从函数中回显数组的第二个键


In PHP how do you echo the 2nd key of an array from a function?

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

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

但是,如果没有变量赋值,我怎么能只输出一行呢?

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

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

尚未尝试,但这可能会对您有所帮助:

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

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

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

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

这可以说比冗长的更好

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

在这种情况下,你很容易忘记你最初应该做什么。

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

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

然而,对于真正的代码,我并不推荐以上任何一种。如果必须的话,使用两个衬垫;它仍然比这些解决方案中的任何一个都更容易阅读。

如果你真的想要一个一行的wathever原因和你的PHP版本<5.4,您可以为此创建一个函数:

function getPath($fullPath) {
   $x = explode('/', $fullPath);
   return $x[1];
}
//now the one-liner
echo getPath('my/path/home');