我从flex发送一个数组到我的php脚本。要拆分的字符串类似于 [F1, 3, true][Urg, 4, false]我会使用这些信息将记录更新到 mySql 数据库中。
例如 [F1, 3, true] 就是这样的记录 [名称, Id, 可见]。
但我不知道如何拆分以使用信息。
感谢您的帮助
您可以删除括号:
$txt = substr($txt, 1, -1);
并爆炸:
$array = explode(',', $txt)
如果你真的坚持这种格式,你可以尝试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);
有了这个,您将获得一个二维数组,数组中的每个元素都是一个数组。每个数组中的第一个元素是匹配数据行,以下元素是解析的数据。元素可以由任意数量的空格字符分隔,布尔值的大小写无关紧要。
我希望
您的数据字符串中没有逗号或方括号 - 这可能使这不可能! 但假设没有这些:
preg_match_all('/'[([^']]*)']/', $text, $matches);
return array_map(function($match) {
return array_map('trim', explode(',', $match));
}, $matches[1]);
(这使用闭包,仅在 PHP 5.3 及更高版本中支持;如果您使用的是旧版本,则可以轻松地将其更改为 foreach 循环。