我需要一只手来使用正则表达式转换数组中的String

时间:2012-03-09 20:23:27

标签: php

我有这个字符串:

[L][2012-03-09 @ 00:17:32][index.php:49] : array(14) {
  ["razao_social"]=>
  string(30) "Campus r5 eventos e formaturas"
  ["cnpj"]=>
  string(14) "14027857000100"
  ["ie"]=>
  string(6) "Isento"
  ["endereco"]=>
  string(25) "rua da assembleia 10 1905"
  ["bairro"]=>
  string(6) "centro"
  ["cep"]=>
  string(9) "20011-001"
  ["cidade"]=>
  string(14) "rio de janeiro"
  ["estado_comercial"]=>
  string(2) "RJ"
  ["telefone_comercial"]=>
  string(14) "(21) 2553-6880"
  ["fax_comercial"]=>
  string(0) ""
  ["email"]=>
  string(40) "thiagoaloy@formaturasmirabolantes.com.br"
  ["cupom"]=>
  string(0) ""
  ["faturamento"]=>
  string(17) "até R$180.000,00"
  ["forma_pagamento"]=>
  string(16) "Boleto bancário"
}

我需要一个包含以下值的数组:

$array = array();
$array['endereco'];
$array['bairro'];

我试图使用正则表达式,但我需要一个简单的例子,我的字符串文件非常大。任何人都可以帮我一把吗?

谢谢,

2 个答案:

答案 0 :(得分:1)

这是方法 - 让我知道如果不适合你

$arr1 = array (
    "razao_social" => "Campus r5 eventos e formaturas",
    "cnpj" => "14027857000100",
    "ie" => "Isento",
    "endereco" => "rua da assembleia 10 1905",
    "bairro"=> "centro",
    "cep" =>   "20011-001",
    "cidade" => "rio de janeiro",
    "estado_comercial" => "RJ",
    "telefone_comercial" => "(21) 2553-6880",
    "fax_comercial" =>  "",
    "email" => "thiagoaloy@formaturasmirabolantes.com.br",
    "cupom" =>  "",
    "faturamento" => "até R$180.000,00",
    "forma_pagamento" => "Boleto bancário"
    );

    foreach($arr1 as $key => $value) {
        print $key."  :    ".$value."<br />";
      }

     echo $arr1["razao_social"];

答案 1 :(得分:0)

您可以使用此正则表达式匹配您的行:

\[\"(endereco|bairro)\"\].*\n.*string\([0-9]+\)\s\"([^\"])*\"

然后您可以使用regexp_replace_callback来创建基于variable_1和variable_2(\ 1和\ 2)的数组来创建数组。