从这个数组中,我希望括号内的解析值带有正则表达式,我使用这个模式=> [([^]] +)]
Array
(
[0] => [DATA_1_A]
[1] => [DATA_1_B] [DATA_2_B]
[2] => [DATA_1_C] [DATA_2_C] [DATA_3_C]
)
将值推送到多维数组。
像这样。
Array
(
[0] => Array
(
[0] => DATA_1_A
)
[1] => Array
(
[0] => DATA_1_B
[1] => DATA_2_B
)
[2] => Array
(
[0] => DATA_1_C
[1] => DATA_2_C
[2] => DATA_3_C
)
)
答案 0 :(得分:0)
假设您的数据格式一致,您可以在没有正则表达式的情况下执行此操作。剥去第一个和最后一个括号,然后将行分开nil
:
] [
或使用正则表达式使用模式$output = array();
foreach ($data as $line) {
$line = trim($line, '[]');
$output[] = explode('] [', $line);
}
来匹配单词字符,数字和下划线:
~\b([\w_\d]+)\b~
答案 1 :(得分:0)
并使用regex和array_map:
$new = array_map(function($i) {
if(preg_match_all('/\[([^\]]+)\]/', $i, $m)) return $m[1];
return $i; }, $arr);
答案 2 :(得分:0)
$array; //your initial array
$output = []; //result array
foreach($array as $key => $value){
$output[$key] = explode("] [", substr($value, 1, -1));
}
这里我们取出第一个和最后一个括号,然后用“] [”。
分开