php
  • mysql
  • arrays
  • database
  • 2014-12-04 106 views 0 likes 
    0

    我有一个看起来像这样的表:使用我发现这里的信息PHP Array到MYSQL数据库?

    <table class="tableclass"> 
        <tr> 
         <th></th> 
         <th> Totals/Avg </th> 
         <th><a href='https://url/id=10607' > Column 1 </a></th> 
         <th><a href='https://url/id=11658' > Column 2 </a></th> 
         <th><a href='https://url/id=12562' > Column 3 </a></th> 
         <th><a href='https://url/id=13278' > Column 4 </a></th> 
         <th><a href='https://url/id=14696' > Column 5 </a></th> 
         <th><a href='https://url/id=16255' > Column 6 </a></th> 
        </tr> 
        <tr> 
         <td><b> Row Info 1 </b></td> 
         <td> 5,400.00 </td> 
         <td> 900.00 </td> 
         <td> 900.00 </td> 
         <td> 900.00 </td> 
         <td> 900.00 </td> 
         <td> 900.00 </td> 
         <td> 900.00 </td> 
        </tr> 
        <tr> 
         <td><b> Row Info 2 </b></td> 
         <td> 6,000.00 </td> 
         <td> 1,000.00 </td> 
         <td> 1,000.00 </td> 
         <td> 1,000.00 </td> 
         <td> 1,000.00 </td> 
         <td> 1,000.00 </td> 
         <td> 1,000.00 </td> 
        </tr> 
        <tr> 
         <td><b> Row Info 3 </b></td> 
         <td> 535,547 </td> 
         <td> 91,186 </td> 
         <td> 90,148 </td> 
         <td> 89,694 </td> 
         <td> 90,900 </td> 
         <td> 90,662 </td> 
         <td> 82,957 </td> 
        </tr> 
    </table> 
    

    :我能够在数据进入阵列How to parse this table and extract data from it?

    Array 
    (
        [0] => 
        [1] => Array 
         (
          [] => Row Info 1 
          [Totals/Avg] => 5,400.00 
          [Column 1] => 900.00 
          [Column 2] => 900.00 
          [Column 3] => 900.00 
          [Column 4] => 900.00 
          [Column 5] => 900.00 
          [Column 6] => 900.00 
         ) 
    
        [2] => Array 
         (
          [] => Row Info 2 
          [Totals/Avg] => 6,000.00 
          [Column 1] => 1,000.00 
          [Column 2] => 1,000.00 
          [Column 3] => 1,000.00 
          [Column 4] => 1,000.00 
          [Column 5] => 1,000.00 
          [Column 6] => 1,000.00 
         ) 
    
        [3] => Array 
         (
          [] => Row Info 3 
          [Totals/Avg] => 535,547 
          [Column 1] => 91,186 
          [Column 2] => 90,148 
          [Column 3] => 89,694 
          [Column 4] => 90,900 
          [Column 5] => 90,662 
          [Column 6] => 82,957 
         ) 
    
    ) 
    

    我需要什么要将数据存储到mysql中,并用实际数据代替Row Info进行布置:

    第1列 - 行Inf o 1 - 行信息2 - 行信息3

    我一直在这里敲响我的头在这里哎呀。

    编辑: 我需要做的基本上是安排在阵列什么,所以我可以将其存储为这样

    Array 
    (
        [0] => 
        [1] => Array 
         (
          [] => Column 1 
          [Row Info 1] => data 
          [Row Info 2] => data 
          [Row Info 3] => data 
         ) 
    
        [2] => Array 
         (
          [] => Column 2 
          [Row Info 1] => data 
          [Row Info 2] => data 
          [Row Info 3] => data 
         ) 
    
        [3] => Array 
         (
          [] => Column 3 
          [Row Info 1] => data 
          [Row Info 2] => data 
          [Row Info 3] => data 
         ) 
         ...etc 
    
    ) 
    
    +2

    您正在使用哪个数据库库? PDO,MYSQLI,MYSQL?你到目前为止尝试过什么? – Jordy 2014-12-04 12:24:23

    +1

    不过分确定我在正确的轨道上与你想要的,但这可能有助于http://stackoverflow.com/questions/9299658/best-way-to-store-an-array-in-mysql-database – DevDonkey 2014-12-04 12:25:17

    +0

    @ Jordy我使用Mysqli作为图书馆。我还没有尝试存储它,因为我不知道如何按照我想要的方式重新排列数据。 – 2014-12-04 12:31:07

    回答

    3

    您可以使用正则表达式是这样的:

    简单地存储在PHP变量的HTML标签为:

    $details = '<table class="tableclass"> <tr> <th> </th> <th> Totals/Avg </th> <th> <a href='https://url/id=10607' > Column 1 </a> </th> <th> <a href='https://url/id=11658' > Column 2 </a> </th> <th> <a href='https://url/id=12562' > Column 3 </a> </th> <th> <a href='https://url/id=13278' > Column 4 </a> </th> <th> <a href='https://url/id=14696' > Column 5 </a> </th> <th> <a href='https://url/id=16255' > Column 6 </a> </th> </tr><tr> <td> <b> Row Info 1 </b> </td><td> 5,400.00 </td><td> 900.00 </td><td> 900.00 </td><td> 900.00 </td><td> 900.00 </td><td> 900.00 </td><td> 900.00 </td></tr><tr> <td> <b> Row Info 2 </b> </td><td> 6,000.00 </td><td> 1,000.00 </td><td> 1,000.00 </td><td> 1,000.00 </td><td> 1,000.00 </td><td> 1,000.00 </td><td> 1,000.00 </td></tr><tr> <td> <b> Row Info 3 </b> </td><td> 535,547 </td><td> 91,186 </td><td> 90,148 </td><td> 89,694 </td><td> 90,900 </td><td> 90,662 </td><td> 82,957 </td></tr>'; 
    
    在使用preg_match_all(后

    )为:

    preg_match_all('/info.*?<td>(.*?)<\/td><td>(.*?)<\/td><td>(.*?)<\/td><td>(.*?)<\/td><td>(.*?)<\/td><td>(.*?)<\/td><td>(.*?)<\/td>.*?<\/tr>/is',$details,$matches); 
    

    结果你会发现数组分别包含你的行信息1,3值。

    您可以通过使用

    print_r($matches); 
    

    现在你可以存储你的值到数据库中检查你的结果。

    谢谢。

    +0

    我已经阅读了多次,并在堆栈上的地方,不要用正则表达式解析HTML。此外,“行信息#”和“列#”只是我发布问题时使用的占位符,它们通常是各种单词,如城市名称等。 – 2014-12-04 13:43:42

    +1

    替换'/info.*?'到'。*?'在之前的preg_match_all()中。你也可以带上城市,名字等值。 – Yash 2014-12-04 13:50:33

    相关问题