跳过字符串PHP上的前两个元素
我有这样一个数组响应:跳过字符串PHP上的前两个元素,php,explode,Php,Explode,我有这样一个数组响应: First#Second#Third#...#...# and etc. 我只想跳过前两个元素,然后得到如下输出: Third#...#...# and etc. 我怎样才能做到?已经尝试过explode()。您可以使用explode(),但它相对昂贵,因为您必须先切碎、取出,然后粘合在一起。考虑到您的简单标准,substr()和strpos()是更好的选择。试试这个: <?php $input = 'First#Second#Third#...#...# a
First#Second#Third#...#...# and etc.
我只想跳过前两个元素,然后得到如下输出:
Third#...#...# and etc.
我怎样才能做到?已经尝试过explode()。您可以使用explode()
,但它相对昂贵,因为您必须先切碎、取出,然后粘合在一起。考虑到您的简单标准,substr()
和strpos()
是更好的选择。试试这个:
<?php
$input = 'First#Second#Third#...#...# and etc.';
// Locate second # and grab everything after that position.
$output = substr($input, strpos($input, '#', strpos($input, '#') + 1) + 1);
var_dump($output); // Third#...#...# and etc.
仅举一个例子,说明如何使用explode()
,而无需将其切碎、移除并粘合在一起
使用explode()
的第三个参数将其限制为3个部分,这样从那里开始的所有内容都是一个部分,只需选择最后一个部分(在本例中我使用[2]
)
给
Third#...#...# and etc.
如果key不等于0或1 do,您可以foreach并执行一个简单的操作。使用and然后?“我有一个数组”==“我有一个字符串”这是一个很好的单行程序,但它仍然会更昂贵。@RoAchterberg,相对的差异可能很小(除非您有任何支持它的东西)。无论如何,这更像是一个如何充分利用API以及如何减少代码影响的案例(即只需执行流程的一部分,而不是假设必须执行三个单独的部分)。我必须“备份”的是explode()将不得不做一些内部字符串扭曲,可以避免使用更轻的东西。虽然我同意性能差异在很大程度上可以忽略不计,但OP没有提供任何范围。因此,任何关于这一点的进一步讨论都是浪费的。@RoAchterberg,实际上我想我会尝试一下,看看有什么不同,似乎这不是你所认为的,这段代码(在简短的文本中)大约快了50%。那么我只能鼓励OP接受你的答案,尽管这根本不是我应该做的。你想分享这些数据吗?我喜欢形成自己的观点。
Third#...#...# and etc.