1

Flex から配列を PHP スクリプトに送信します。分割する文字列は [F1, 3, true][Urg, 4, false] のようなものです。これらの情報を使用して、レコードを mySql データベースに更新します。

たとえば、[F1, 3, true] は [Name, Id, Visible] のようなレコードです。

しかし、情報を使用するために分割する方法はありません。

助けてくれてありがとう

4

3 に答える 3

0

データ文字列にコンマや角括弧が含まれていないことを願っています。これが不可能になる可能性があります。しかし、それらのどれもないと仮定します:

preg_match_all('/\[([^\]]*)\]/', $text, $matches);
return array_map(function($match) {
    return array_map('trim', explode(',', $match));
}, $matches[1]);

(これは、PHP 5.3 以降でのみサポートされているクロージャーを使用します。古いバージョンを使用している場合は、非常に簡単に foreach ループに変更できます。)

于 2012-06-01T21:47:41.040 に答える
0

本当にその形式にこだわるなら、preg_match を試すことができます。

$string = '[F1, 3, true][Urg, 4, false][asd,      1337, TrUe]';
preg_match_all('/\[(\w+),\s*?(\d+),\s*?(true|false)\]/i', $string, $matches, PREG_SET_ORDER);

これにより、2 次元配列が得られます。配列の各要素は配列です。各配列の最初の要素は一致データ行で、次の要素は解析されたデータです。要素は、必要な数の空白文字で区切ることができます。ブール値の大文字と小文字は関係ありません。

于 2012-06-01T21:39:18.363 に答える
0

ブラケットを削除できます。

$txt = substr($txt, 1, -1);

そして爆発します:

$array = explode(',', $txt)
于 2012-06-01T21:40:03.237 に答える