Например, если вы не хотите использовать регулярное выражение и хотите использовать функцию explode()
, которую вы уже используете, вы можете просто заменить все экземпляры ', '
на ','
, а затем разбить строкупо частям ,
(за которым следует пробел), а не просто запятая.
Таким образом, вещи в скобках не имеют разделителя разнесения, поэтому они не разбиваются на массивы.
Это создает дополнительную проблему: если бы у вас была строка типа '==', 'test-taco'
, это решение не сработало бы.Эта проблема, наряду со многими другими проблемами, вероятно, может быть решена путем удаления одинарных кавычек из отдельных строк, так как ==, test-taco
все равно будет работать.
Это решение должно работать, если ваши строки в скобках являются действительными массивами PHP/ JSON строка
$str = "'==', ['abc', 'xyz'], 1";
$str = str_replace("', '", "','", $str);
$str = explode(", ", $str);
Хотя я рекомендую регулярное выражение, поскольку оно может решить некоторые основные проблемы, которые я не вижу.
Вывод:
Array
(
[0] => '=='
[1] => ['abc','xyz']
[2] => 1
)