无法绕过这个......
说,我们像这样爆炸整个事情:
$ extract = explode('tra-la-la',$ big_sourse);
然后我们想得到索引1的值:
$ finish = $ extract [1];
我的问题是如何一气呵成,这样说。类似的东西:
$ finish = explode('tra-la-la',$ big_sourse)[1]; //不起作用
像下面这样的东西会像魅力一样:
$ finish = end(explode('tra-la-la',$ big_sourse));
//或
$ finish = array_shift(explode('tra-la-la',$ big_sourse));
但如果价值位于中间的某个位置怎么办?
答案 0 :(得分:7)
Function Array Dereferencing已在PHP 5.4中实现。对于旧版本,这是PHP解析器中的一个限制,它已被修复in here,所以我现在不用担心。
答案 1 :(得分:1)
类似的东西:
end(array_slice(explode('tra-la-la', $big_sourse), 1, 1));
虽然我不认为它比在两行上写它更好/更清楚/更漂亮。
答案 2 :(得分:0)
您可以使用list
:
list($first_element) = explode(',', $source);
[1]
实际上是数组中的第二个元素,不确定你是否真的这么说。如果是这样,只需将另一个变量添加到列表构造中(如果愿意,则省略第一个变量)
list($first_element, $second_elment) = explode(',', $source);
// or
list(, $second_element) = explode(',', $source);
答案 3 :(得分:0)
我的建议 - 是的,我已经找到了一些东西 - 会使用一个额外的agrument允许该功能。如果设置为正数,则返回的数组将包含最多限制元素,最后一个元素包含其余字符串。所以,如果我们想要得到索引2处的值(当然,我们确定我们喜欢的值会预先存在),我们只需按以下步骤操作:
$finish = end(explode('tra-la-la', $big_sourse, 3));
explode将返回一个包含最多三个元素的数组,因此我们“结束”我们查找的那个元素的最后一个元素,索引为2 - 我们已经完成了!