2016-10-11 4 views
2

У меня есть код, который я должен взорвать свой текст, используя «*» в качестве разделителя.Как получить ряд массивов

У меня есть шаблон, который всегда будет исключать массив [0] и [1], а остальные должны быть включены внутри переменной, но моя проблема заключается в том, что я не знаю, как динамически остальную часть массивов, которые я должен собрать вместе.

Специально потому, что мой текст может иметь больше «*» и взорваться на несколько частей, но мне нужно собрать их все вместе. Исключая [0] и [1]

$item= explode("*",$c7); 

     print_r($item); 

//so now that I know which are my [0] and [1] arrays I need to get the rest of them inside of another variable 

$variable = ?? //the rest of the $item arrays 
+0

Не могли бы вы представить пример строки с ожидаемым выходом? –

+0

@ WiktorStribiżew да, я отправлю его прямо сейчас – MattDAVM

+0

Итак, из 'a * b * c * d * e' вам нужно получить' c * d * e'? Тогда ответ Якуба должен сработать для вас. –

ответ

3
$str = 'a*b*c*d*e'; 
$newStr = implode('*', array_slice(explode('*', $str), 2)); // OUTPUT: c*d*e 

explode() используется для фрагмента строку с помощью разделителя

implode() используется для создания строки снова с кусками

array_slice() используется для выбора диапазона элементов

+0

Я думаю, что это должно быть '$ newStr = implode ('*', array_slice (explode ('*', $ str), 2)); 'но не уверен. –

+0

@ WiktorStribiżew, да, автор не указывал до этого, что результат должен быть отделен отграниченным. –

0

Я думаю, основаны от вашего вопроса, если я истолковал это правильно что-то вроде ниже будет полезно.

ИСПОЛЬЗОВАНИЕ LOOP

$str = "adssa*asdASD*AS*DA*SD*ASD*AS*DAS*D"; 
$parts = explode("*", $str); 

$newStr = ""; 
for ($i = 2; $i < count($parts); ++$i) { 
    $newStr .= $parts[$i]; 
} 
+0

Правильный оператор будет. = В противном случае вы получите 0 (ноль) на php 7 –

1

Я понимаю, что ответ был уже принят, но explode имеет третий аргумент в пользу этого, и с end вы можете получить, что в прошлом, нерасщепимая часть:

$str = 'a*b*c*d*e'; 
$res = end(explode("*", $str, 3)); 

$res получает это значение в качестве результата:

c*d*e