Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
跳过字符串PHP上的前两个元素_Php_Explode - Fatal编程技术网

跳过字符串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.