Я пытаюсь взорвать строку, используя несколько разделителей (↑↑ , ↑ , ↓↓ , ↓
).Как я могу взорвать строку несколькими разделителями, а также сохранить разделители?
Например, у меня есть эта intput строка:
$string = "(2.8 , 3.1) → (↓↓2.4 , ↓3.0)";
Я хотел бы, чтобы преобразовать его в массив, как этот (ожидается выход):
Array
(
[0] => (2.8 , 3.1) → (
[1] => ↓↓
[2] => 2.4 ,
[3] => ↓
[4] => 3.0)
)
Моя лучшая попытка принты меня это (текущий выход):
Array
(
[0] => (2.8 , 3.1) → (
[1] => ↓
[2] => ↓2.4 ,
[3] => ↓3.0)
)
Это мой текущий код:
<?php
function multiexplode ($delimiters,$string) {
return explode(
$delimiters[0],
strtr(
$string,
array_combine(
array_slice($delimiters,1),
array_fill(0,count($delimiters)-1,array_shift($delimiters))
)
)
);
}
$delimiters = array('↑↑','↑','↓↓','↓');
$test = array('2up↑↑','1up↑','2down↓↓','1down↓');
$newDel = array('2up','1up','2down','1down');
$array = array();
$strings = array(
"(2.8 , 3.1) → (↓↓2.4 , ↓3.0)",
"(2.7 , 2.6) → (↑2.8 , ↑↑3.0)",
"(2.0 , 3.4) → (↑↑2.8 , ↓↓2.3)"
);
foreach($strings as $string){
foreach($test as $key => $reps){
$string = str_replace(
$delimiters[$key],
$reps,
$string
);
}
//echo $string;
$array[] = array_values(array_filter(multiexplode($newDel,$string)));
}
?>
Я строю его, как этот формат, потому что я собираюсь цикла эти значения и напечатать те внутри PowerPoint и эти разделители (стрелки) имеют разные цвета
deym. не знал, что это может быть всего лишь 3 кода лайнера. Спасибо – roullie
@roullie Добро пожаловать. Наслаждайтесь своим днем :) – Rizier123
ответ будет принят через 6 минут – roullie