如何在数组中搜索值(使用正则表达式)并将搜索值推送到PHP中的多维数组?

时间:2016-06-06 21:04:55

标签: php arrays multidimensional-array

从这个数组中,我希望括号内的解析值带有正则表达式,我使用这个模式=> [([^]] +)]

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

3 个答案:

答案 0 :(得分:0)

假设您的数据格式一致,您可以在没有正则表达式的情况下执行此操作。剥去第一个和最后一个括号,然后将行分开nil

] [

Example

或使用正则表达式使用模式$output = array(); foreach ($data as $line) { $line = trim($line, '[]'); $output[] = explode('] [', $line); } 来匹配单词字符,数字和下划线:

~\b([\w_\d]+)\b~

Example

答案 1 :(得分:0)

并使用regex和array_map:

$new = array_map(function($i) {
    if(preg_match_all('/\[([^\]]+)\]/', $i, $m)) return $m[1];
    return $i;  }, $arr);

demo

答案 2 :(得分:0)

$array; //your initial array
$output = []; //result array
foreach($array as $key => $value){
    $output[$key] = explode("] [", substr($value, 1, -1));
}

这里我们取出第一个和最后一个括号,然后用“] [”。

分开