1

我从 flex 发送一个数组到我的 php 脚本。要拆分的字符串就像 [F1, 3, true][Urg, 4, false] 我会使用这些信息将记录更新到 mySql 数据库中。

例如 [F1, 3, true] 就是这样的记录 [Name, Id, Visible]。

但我不知道如何拆分使用信息。

感谢您的帮助

4

3 回答 3

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);

有了这个,你将得到一个二维数组,数组中的每个元素都是一个数组。每个数组的第一个元素是匹配数据行,后面的元素是解析后的数据。元素可以用任意数量的空白字符分隔,布尔值的大小写无关紧要。

于 2012-06-01T21:39:18.363 回答
0

您可以删除括号:

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

并爆炸:

$array = explode(',', $txt)
于 2012-06-01T21:40:03.237 回答
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 回答