У меня есть этот массив:Использование preg_replace, чтобы добавить кавычки в массив
$array = '[[Smarties, 50g, 3, 1.99],
[M&Ms Peanut, 49g, 3, 1.99],
[Oreo Cookies, 300g, 1, 3.99],
[Pepsi, 355ml, 3, 1.29]]';
мне нужно использовать json_decode, так что мне нужно найти способ, чтобы окружать информацию внутри в кавычках, как это:
[["Smarties", "50g", "3", "1.99"],
["M&Ms Peanut", "49g", "3", "1"."99"],
["Oreo Cookies", "300g", "1", "3.99"],
["Pepsi", "355ml", "3", "1.29"]]
Я попытался с помощью preg_replace, и это то, что я в настоящее время получаю (близко, но это разделение цен на две, а также разделяя имена двух слов на два.):
[["Smarties", "50g", "3", "1"."99"],
["M"&"Ms" "Peanut", "49g", "3", "1"."99"],
["Oreo" "Cookies", "300g", "1", "3"."99"],
["Pepsi", "355ml", "3", "1"."29"]]
Мне очень трудно понять preg_replace, и я надеюсь, что кто-то сможет помочь.
Есть ли способ использовать разделительные запятые в качестве направляющих, чтобы определить, где положить кавычки?
Вы можете использовать [lookaround assertions] (http://www.regular-expressions.info/lookaround.html), такие как '(? <= \ [)' Или '(?! \ S * \()' Хотя может быть проще искать последовательные не запятые и скобки и исключать окружающие пробелы, а затем обертывать кавычки. – mario
Вам нужно поделиться регулярным выражением, которое у вас уже есть. Это должно помочь вам быстрее получить ответ – Machavity