-2

私は次のような文字列を持っています{"A":["3", "4", "5", "6"],"B":["3", "4", "5", "6"],"C":[{"2":"y"},{"3":"y"},{"4":"y"},{"5":"y"}],"D":["3", "4", "5", "6"]}

B配列内の「 5」は「5」を意味し、他のmysqlクエリ内では検索したくありません。

そのための正規表現は何でしょうか

4

4 に答える 4

2

マーク・ベイカーは、あなたのためにほとんど答えてくれました.PHPには、json文字列をデコードする方法がすでにあります。自分自身を解析するよりも簡単です:

http://php.net/manual/en/function.json-decode.php

編集:この情報はデータベースに保存されているというあなたのコメントを見ました。その場合、json 文字列をデータベースに直接保存しません。すべての情報を 1 つの列に保持することで、リレーショナル データベースの目的を無効にしています。

于 2013-07-16T08:22:52.680 に答える
1

シンプルで効果的な解決策はREGEXP '.*"B":\\[["0-9,]*"5"["0-9,]*\\]'

于 2013-07-18T07:07:56.620 に答える
0

json なので、json_decode を使用します。

$str = '{"A":["3", "4", "5", "6"],"B":["3", "4", "5", "6"],"C":[{"2":"y"},{"3":"y"},{"4":"y"},{"5":"y"}],"D":["3", "4", "5", "6"]}';
$obj = json_decode($str);
echo $obj->{'B'}[2];

出力:

 5
于 2013-07-16T08:27:21.967 に答える
-1

次のようなことを試すことができます:

REGEXP '"B":\[([^"\]]")*5"'
于 2013-07-16T08:37:24.507 に答える