我在php中有这种格式的数据数组:
Array
(
[0] => Array
(
[A] => ID
[B] => Name
[C] => 2016/01/16 Qty
[D] => 2016/01/16 Sales
[E] => 2016/01/17 Qty
[F] => 2016/01/17 Sales
)
[1] => Array
(
[A] => 1
[B] => TestPrd1
[C] => 1
[D] => 2
[E] => 3
[F] => 4
)
[2] => Array
(
[A] => 2
[B] => TestPrd2
[C] => 5
[D] => 6
[E] => 7
[F] => 8
)
)
我想要一个修改数组的函数:
Array
(
[0] => Array
(
[A] => ID
[B] => Name
[C] => Qty
[D] => Sales
[E] => Date
)
[1] => Array
(
[A] => 1
[B] => TestPrd1
[C] => 1
[D] => 2
[E] => 2016/01/16
)
[2] => Array
(
[A] => 1
[B] => TestPrd1
[C] => 3
[D] => 4
[E] => 2016/01/17
)
[3] => Array
(
[A] => 2
[B] => Testprd2
[C] => 5
[D] => 6
[E] => 2016/01/16
)
[4] => Array
(
[A] => 2
[B] => Testprd2
[C] => 7
[D] => 8
[E] => 2016/01/17
)
)
或简单说明(第一行包含标题):
ID,Name,2016/01/16数量,2016/01/16销售,2016/01/17数量,2016/01/17销售额
1,TestPrd1,1,2,3,4
2,TestPrd2,5,6,7,8
成为:
ID,名称,数量,销售日期
1,TestPrd1,1,2,2016 / 1月16日
1,TestPrd1,3,4,2016 / 1月16日
2,TestPrd2,5,6,2016 / 1月17日
2,TestPrd2,7,8,2016 / 1月17日
我有成千上万的行(这是我说明问题的数据的一个非常简化的子集),目的是从excel文件中读取它们并将它们放入mysql。
关于什么是解决这个问题的最佳方法的任何想法?
答案 0 :(得分:0)
// Create a new array to hold data
$dataonlyarray = array();
$dataonlyarray2 = array();
$dataonlyarray3 = array();
$dataonlyarray4 = array();
// Start filling the new array with data
for ($i = 0; $i < sizeof($main_prod_arr); $i++) {
$dataonlyarray2[] = array_slice($main_prod_arr[$i],0,$startingdatecolumn);
$dataonlyarray3[] = array_slice($main_prod_arr[$i],0,$startingdatecolumn);
}
for ($i = 0; $i < sizeof($main_prod_arr); $i++) {
array_push($dataonlyarray2[$i],$main_prod_arr[$i][$startingdatecolumn]);
array_push($dataonlyarray2[$i],$main_prod_arr[$i][$startingdatecolumn]+1);
array_push($dataonlyarray2[$i],$headers_arr[$startingdatecolumn]);
}
for ($i = 0; $i < sizeof($main_prod_arr); $i++) {
array_push($dataonlyarray3[$i],$main_prod_arr[$i][$startingdatecolumn]+2);
array_push($dataonlyarray3[$i],$main_prod_arr[$i][$startingdatecolumn]+3);
array_push($dataonlyarray3[$i],$headers_arr[$startingdatecolumn+3]);
}
$dataonlyarray4[] = array_merge($dataonlyarray2,$dataonlyarray3);
array_push($dataonlyarray,$dataonlyarray4);