2011-09-26 108 views
1

我知道这可能是一个简单的问题,它以前必须得到回答,但它是你不知道如何谷歌的问题。php:textarea excel粘贴到数组

我做内联网和我在至极TE用户产生大的texarea从Excel粘贴一个5columns X 365行(与1至365的数字可选的第一列)和在此结束:

1 $ 37 $ 74 $ 111 $ 148 $ 185 
2 $ 37 $ 74 $ 111 $ 148 $ 185 
3 $ 37 $ 74 $ 111 $ 148 $ 185 
4 $ 37 $ 74 $ 111 $ 148 $ 185 
5 $ 37 $ 74 $ 111 $ 148 $ 185 
6 $ 57 $ 114 $ 171 $ 228 $ 285 
7 $ 57 $ 114 $ 171 $ 228 $ 285 
8 $ 57 $ 114 $ 171 $ 228 $ 285 
9 $ 57 $ 114 $ 171 $ 228 $ 285 
10 $ 57 $ 114 $ 171 $ 228 $ 285 

我怎样才能把它变成一个php数组,然后我可以将它插入到mysql表中? 我对使用explode()进行了讨论,但我不确定每列之间的空间是否总是相同,也许有更奇妙的方法来做到这一点。

如果这已经在其他地方讨论过了,只需指向我即可。

非常感谢

+0

,在$将不得不被删除 – Juan

回答

3

每LIGNE '\n'爆炸,然后每'\t'列,只是忽略$

<?php 
$str = " 1 $ 37 $ 74 $ 111 $ 148 $ 185 
    2 $ 37 $ 74 $ 111 $ 148 $ 185 
    3 $ 37 $ 74 $ 111 $ 148 $ 185 
    4 $ 37 $ 74 $ 111 $ 148 $ 185 
    5 $ 37 $ 74 $ 111 $ 148 $ 185 
    6 $ 57 $ 114 $ 171 $ 228 $ 285 
    7 $ 57 $ 114 $ 171 $ 228 $ 285 
    8 $ 57 $ 114 $ 171 $ 228 $ 285 
    9 $ 57 $ 114 $ 171 $ 228 $ 285 
    10 $ 57 $ 114 $ 171 $ 228 $ 285"; 


$arrayCode = array(); 
$rows = explode("\n", $str); 
foreach($rows as $idx => $row) 
{ 
    $row = explode("\t", $row); 

    //to get rid of first item (the number) 
    //comment it if you don't need. 
    array_shift ($row); 

    foreach($row as $field) 
    { 
     //to clean up $ sign 
     $field = trim($field, "$ "); 
     $arrayCode[$idx][] = $field; 
    } 
} 
print_r($arrayCode); 
?> 
当然
+0

我相信,在Excel中,场分离通过粘贴复制粘贴 – ariefbayu

+0

以摆脱** $ **和**行号码** – 3on

+0

非常感谢,很遗憾,您的新代码不起作用。第一个产生的这个阵列 阵列 ( [0] =>数组 ( [0] => 37 [1] => 74 [2] => 111 [3] => 148 [ 4] => 185 \ N 37 [5] => 74 [6] => 111 [7] => 148 [8] => 185 \ N 37 但是这个版本产生一个空数组。我我没有找到我为什么要在同一个“行”中加入valies(数字4和8)和\ n – Juan