質問を単純化しましょう:
必要なのは、角かっこで囲まれたコンマで文字列をexplode()することだけです。問題は、コンマで選択された要素自体にコンマを含めることができるため、単純な展開が機能しないことです。JSONをデコードする方法を尋ねていません。
引数の数、それらのタイプは常に異なります。
('foo')
('bar', NULL)
({"JSON": "data"}, 'test')
私がコードのこの部分を持っていると仮定すると:
({"class": "navigation", "id": "navigation"}, NULL, 'bar' /* [..] */)
誰かが正規表現(または代替方法)を提案して、すべてのコンマ区切りのエントリを(文字列として)取得できますか?問題は、変数自体にコンマを含めることができることです。したがって、これには再帰が必要だと思います。
期待される結果は、次のエントリを含む配列になります。
{"class": "navigation", "id": "navigation"}
NULL
'bar'