我有一个字符串,看起来像 1234#5678 。现在我称之为:
$last = explode("#", "1234#5678")[1]
它不起作用,有一些语法错误......但在哪里?我期望的是$last
中的5678。这不适用于PHP吗?
答案 0 :(得分:31)
在当前的PHP版本中不可能进行数组解除引用(不幸的是)。但您可以使用list
[docs]直接将数组元素分配给变量:
list($first, $last) = explode("#", "1234#5678");
<强>更新强>
自PHP 5.4(2012年3月1日发布)以来,它支持array dereferencing。
答案 1 :(得分:13)
很可能PHP会被语法搞糊涂了。只需将explode
的结果分配给数组变量,然后对其使用索引:
$arr = explode("#", "1234#5678");
$last = $arr[1];
答案 2 :(得分:7)
以下是如何将其归结为一行:
$last = current(array_slice(explode("#", "1234#5678"), indx,1));
其中indx
是数组中所需的索引,在您的示例中为1。
答案 3 :(得分:5)
你不能这样做:
explode("#", "1234#5678")[1]
因为explode
是一个函数,而不是一个数组。它肯定会返回一个数组,但在PHP中,在将函数设置为数组之前,不能将该函数视为数组。
这是怎么做的:
$last = explode('#', '1234#5678');
$last = $last[1];
答案 4 :(得分:3)
PHP可能有点暗淡。您可能需要在两行中执行此操作:
$a = explode("#", "1234#5678");
$last = $a[1];