Сепаратор взорваться и взорваться - PullRequest
0 голосов
/ 11 ноября 2011

Это пример кода

$a=array('a,b','cd');
$b=implode(',',$a);
$c=explode(',',$b);
print_r($c);

, потому что у меня есть ',' в $ a [0] print_r($c); результат равен

Array ( [0] => a [1] => b [2] => cd)

есть ли возможность взорвать игнорировать ',' в строке, и у меня есть

Array ( [0] => a,b [3] => b [2] => cd )

или единственное решение - выбрать лучший разделитель, такой как "*? -"

Ответы [ 3 ]

6 голосов
/ 11 ноября 2011

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

3 голосов
/ 11 ноября 2011

Функции implode() и explode() полностью независимы.У них нет «памяти» или «знания» друг о друге или о том, что они сделали.

Итак, explode() не знает, что implode() использовал символ, который он собирается использовать.Фактически, для некоторых людей это может быть допустимым вариантом использования, и они хотят разделить все запятые.

Это довольно стандартная проблема при использовании любого типа мета или escape-символа.Что вы делаете, когда видите этого персонажа и он должен быть там?Вы избежите побега персонажа.Пример в виде строки с escape-символами:
"\tHello,\nI need something to do\\think about.\n"

Это не просто с помощью простого взрыва / взрыва.Это исправлено парсером.

Самое простое для вас - сделать разделитель чем-то совершенно уникальным.Это не должен быть один персонаж.Или вы можете выполнить более сложный анализ.

$separator = 'abcd1234(*&@#@%asdf___jasldfkj'; // something very unlikely to actually exist
$a=array('a,b', 'cd');
$b=implode($separator, $a);
$c=explode($separator, $b);
print_r($c);

результат:

Array 
( 
    [0] => a,b 
    [1] => cd 
)
2 голосов
/ 11 ноября 2011

Вы должны выбрать символ или несколько символов, которые, как вы знаете, не появятся в тексте, который вы собираетесь взорвать / взорвать. Если у вас есть куча текста, в котором запятые, тогда вы взорвете их все запятыми, и вам будет очень трудно попытаться взорвать их всех на этой запятой. На самом деле, это, вероятно, было бы невозможно без исходных данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...