我知道这可能是个简单的问题,之前肯定有人回答过,但您不知道如何通过 google 搜索这类问题。
我正在做一个内部网,我有一个很大的 texarea,用户从 excel 粘贴 5 列 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() 犹豫不决,但我不确定每列之间的间距是否始终相同,也许有一种更好的方法可以做到这一点。
如果这已经在其他地方讨论过,请指出它。
非常感谢
最佳答案
按行 '\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 );
?>
关于php: textarea excel 粘贴到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7562314/